Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
My always up-to-date WeeChat configuration (weechat-dev)

WeeChat Screenshot

Enable mouse support

/mouse enable

Encrypted password in sec.conf

/secure passphrase <pass>
/secure set bncaddrport <addr/port>
/secure set bncpass <pass>
/secure set relaypass <pass>
/secure set hiddenbuffers <list of hidden buffers full name>
/secure set mariechannel <buffer fullname of my friend's channel>

Network

Default settings on server creation

/set irc.server_default.nicks r3m
/set irc.server_default.ssl_verify off
/set irc.server_default.capabilities "account-notify,away-notify,cap-notify,multi-prefix,server-time,znc.in/self-message"

the last line request some IRCv3 capabilities. Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, extended-join, multi-prefix, server-time, userhost-in-names. See IRCv3 Specifications to learn more about IRCv3 capabilities.

Network-specific settings

/server add freenode ${sec.data.bncaddrport} -ssl -autoconnect
/set irc.server.freenode.password r3m/freenode:${sec.data.bncpass}

/server add oftc ${sec.data.bncaddrport} -ssl -autoconnect
/set irc.server.oftc.password r3m/oftc:${sec.data.bncpass}

/server add snoonet ${sec.data.bncaddrport} -ssl -autoconnect
/set irc.server.snoonet.password r3m/snoonet:${sec.data.bncpass}

/connect -all

Extensions

Plugins to load at startup

/set weechat.plugin.autoload "*,!lua,!tcl,!fifo,!xfer,!guile,!javascript"

this will load all module except lua, tcl, fifo, xfer, guile and javascript

Aspell

/set aspell.check.default_dict en
/set aspell.check.suggestions 3
/set aspell.color.suggestion *green
/aspell enable

Set the dictionary based on the channel name

/trigger add setdict signal *,irc_in2_join
/trigger set setdict conditions "${nick} == ${info:irc_nick,${server}} && ${channel} =~ [.-](fr|it|es)$ && ${aspell.dict.irc.${server}.${channel}} =="
/trigger set setdict regex "/.*[.-](fr|it|es)$/${re:1}/"
/trigger set setdict command "/set aspell.dict.irc.${server}.${channel} ${tg_signal_data}"

This trigger will set the french dictionnary for channel ending in .fr and -fr Same for it and es.

Note: we will add the suggestions to the statusbar later.

Relay

/relay sslcertkey
/relay add ssl.weechat <port>
/set relay.network.password ${sec.data.relaypass}

If you want a trusted certificate, use let's encrypt! with weechat relay.

Note: Even if I use a bouncer (ZNC), this is quite useful to enable relay. Like this you have access to all IRC client (ZNC) and all weechat remote interface (WeeChat Relay). Of course, WeeChat can do both but ZNC is multi-user.

Logger

/set logger.level.irc 0
/set logger.file.path /home/launch/.znc/users/r3m/moddata/log
/set logger.mask.irc %Y/$server/$channel.%m-%d.log

Note: I do not log IRC conversation via WeeChat (I log via ZNC). However, I use the script grep.py and this script check the value of logger.file.path. If the module is not loaded, the value is not accessible. You could load logger, then set the correct path and run /logs to build the index and then disable logger but I had an issue when I upgrade WeeChat.

Scripts

/script install buffer_autoset.py autosort.py grep.py text_item.py

autosort.py

/autosort helpers set french_channels_first ${if:${type}==channel&&${buffer.name}!~fr$&&${info:aspell_dict,${buffer.full_name}}!~fr}
/autosort rules insert 6 ${french_channels_first}

this rule will show french channels first (those that the name end with fr and also those that aspell is set to fr)

Conky

/buffer_autoset add exec.exec.conky short_name conky

exec conky at startup and right now

/set weechat.startup.command_after_plugins "/exec -norc -noln -buffer conky conky"
/exec -norc -noln -buffer conky conky

change the title of the conky window

/buffer_autoset add exec.exec.conky title Conky - the light-weight system monitor

It will change the title of the conky window from Executed commands to Conky - the light-weight system monitor

this trigger will beautify the output of conky and add a localvar with the value of load average and the buflist will retrieve it

/trigger add conky_tag_color modifier weechat_print
/trigger set conky_tag_color conditions ${tg_buffer} == exec.exec.conky
/trigger set conky_tag_color regex /^ \t(Uptime|CPU|RAM|Swap|Networking|Up|Down):(.*)/ ${color:_31}${re:1}\t${color:reset}${re:2}/ /No swap/0/ /^ \tLoad Average.*// /^Load Average: (.*)/${re:1}/tg_message_nocolor
/trigger set conky_tag_color command ${if:${tg_message}=~Load Average?/buffer set localvar_set_buflist ${tg_message_nocolor}}

my .conkyrc

background no
cpu_avg_samples 2
net_avg_samples 2
no_buffers yes
out_to_stderr no
update_interval 1.0
uppercase no
use_spacer none

TEXT
Load Average: ${loadavg 1 2}
Uptime: $uptime
CPU: $cpu%
RAM: $memperc%
Swap: $swapperc%
Up: ${upspeed venet0}
Down: ${downspeed venet0}

Note: you need conky-cli package on Debian, same for Arch Linux

Weather with wttr.in

/buffer_autoset add exec.exec.weather short_name weather
/set aspell.dict.exec.exec.weather fr
/trigger add weather command weather
/trigger set weather regex "/\s/_/tg_argv_eol1"
/trigger set weather command "/exec -noflush -norc -noln -buffer weather curl -s http://wttr.in/${tg_argv_eol1}?lang=${aspell.dict.exec.exec.weather}"

I found something very similar on the alias wiki page of WeeChat on GitHub. I adjust it for my own use. So when you type /weather Montreal, a new buffer will be created and will show the output of curl -s http://wttr.in/Montreal. (I created a trigger instead of an alias to replace space by _ in city name)

/trigger add set_title_weather_buffer print ""
/trigger set set_title_weather_buffer conditions "${buffer.full_name} == exec.exec.weather && ${tg_message_nocolor} !~ ^\W && ${tg_message_nocolor} !~ (wttr\.in|@igor_chubin)"
/trigger set set_title_weather_buffer regex "/.*/${tg_message_nocolor}/ /[^:]+:(.*)/${re:1}/tg_message"
/trigger set set_title_weather_buffer command "/buffer set title ${tg_message_nocolor};/buffer set localvar_set_buflist ${tg_message}"

I created this trigger to change the title of the buffer from Executed commands to Weather for City: Montreal, Canada.

/trigger add weather_shortcut modifier input_text_for_buffer
/trigger set weather_shortcut conditions "${buffer[tg_modifier_data].full_name} == exec.exec.weather && ${tg_string_nocolor} !~ ^/"
/trigger set weather_shortcut regex "==(.*)==/weather ${re:1}"

This trigger will allow you to enter only the city name (without /weather) in the weather buffer.

Bars

Bar buflist

unmerge servers buffers from core and indent

/set irc.look.server_buffer independent

Note: show channels and privates buffers under their respective server instead of mixing them all.

/set buflist.format.buffer "${format_number}${indent}${eval:${format_name}}${format_hotlist} ${color:31}${buffer.local_variables.filter}${buffer.local_variables.buflist}"
/set buflist.format.buffer_current ${if:${type}==server?${color:*white,31}:${color:*white}}${hide:>,${buffer[last_gui_buffer].number}} ${indent}${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK}:${name}} ${color:31}${buffer.local_variables.filter}${buffer.local_variables.buflist}
/set buflist.format.hotlist " ${color:239}${hotlist}${color:239}"
/set buflist.format.hotlist_highlight "${color:163}"
/set buflist.format.hotlist_message "${color:229}"
/set buflist.format.hotlist_private "${color:121}"
/set buflist.format.indent "${if:${type}==channel&&${buffer.name}=~fr$||${info:aspell_dict,${buffer.full_name}}=~fr?${color:blue}f :  }${color:*white}"
/set buflist.format.name "${if:${type}==server?${color:white}:${color_hotlist}}${if:${type}==server||${type}==channel||${type}==private?${if:${cutscr:8,+,${name}}!=${name}?${cutscr:8,${color:${weechat.color.chat_prefix_more}}+,${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK}:${name}}}:${cutscr:8, ,${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK}                              :${name}                              }}}:${name}}"
/set buflist.format.number "${if:${type}==server?${color:black,31}:${color:239}}${number}${if:${number_displayed}?.: }"
/set weechat.bar.buflist.size 18
/set weechat.bar.buflist.size_max 18

Different foreground and background colors for servers buffers. Display the real network name instead of the one you create in WeeChat. For example, if you add a server BNCFreenode, it will appears as freenode. Servers, channels and privates names that exceed 8 characters will be cut to 8 followed by a + sign. Those who have less than 8 characters will be filled with space to make them align their hotlist with those that exceed 8 characters. Here, I added 25 spaces even if my bar is only 18, if you're bar is more than 25 characters wide, add spaces. Finally, if you type /iset something, the something text will appears at the right of iset. The load average will appears at the right of conky and the current city will appears at the right of weather (if you type /weather )

Bar active title

/bar add activetitle window top 1 0 buffer_title
/set weechat.bar.activetitle.priority 500
/set weechat.bar.activetitle.conditions "${active}"
/set weechat.bar.activetitle.color_fg white
/set weechat.bar.activetitle.color_bg 31
/set weechat.bar.activetitle.separator on

Note: This bar will be different from the already created one. I set the conditions to ${active} so this bar will be displayed on the active window only. The other one will be used for other windows.

Bar title

/set weechat.bar.title.conditions "${inactive}"
/set weechat.bar.title.color_fg black
/set weechat.bar.title.color_bg 31

Bar status

/bar add rootstatus root bottom 1 0 [time],[buffer_count],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_filter,[bitlbee_typing_notice],[lag],[aspell_dict],[aspell_suggest],completion,scroll
/set weechat.bar.rootstatus.color_fg 31
/set weechat.bar.rootstatus.color_bg 234
/set weechat.bar.rootstatus.separator on
/set weechat.bar.rootstatus.priority 500
/bar del status
/bar set rootstatus name status

Note: the built-in status bar is of type window. I prefer a status bar of type root which means it will be outside any window. At this time, you can't change the type of a bar. So we delete the status bar and create a new one.

Bar input

/bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
/set weechat.bar.rootinput.color_bg black
/set weechat.bar.rootinput.priority 1000
/bar del input
/bar set rootinput name input

Note: the built-in input bar is of type window. I prefer a input bar of type root which means it will be outside any window. At this time, you can't change the type of a bar. So we delete the status bar and create a new one.

Bar Nicklist

/set weechat.bar.nicklist.color_fg 229
/set weechat.bar.nicklist.separator on
/set weechat.bar.nicklist.conditions "${nicklist} && ${window.number} == 1 && ${buffer.full_name} !~ ^irc.freenode.(#newsbin|##news)$"
/set weechat.bar.nicklist.size_max 14
/set weechat.bar.nicklist.size 14

Note: I changed the conditions to display the nicklist only on buffer of type channels ${nicklist} and on the window number 1, which is my chat window (2 being my highlight window and 3 my conky window). In my case, I could remove ${window.numer} == 1 because the highmon and exec buffer (conky) are not of type channels so ${nicklist} is enough.

Bar ZNC (see this dedicated gist)

/set plugins.var.python.text_item.znc_commands "private "

/set plugins.var.znc_commands Version ListMods ListAvailMods ListNicks ListServers AddNetwork DelNetwork ListNetworks MoveNetwork JumpNetwork AddServer DelServer AddTrustedServerFingerprint DelTrustedServerFingerprint ListTrustedServerFingerprints EnableChan DisableChan Attach Detach Topics PlayBuffer ClearBuffer ClearAllChannelBuffers ClearAllQueryBuffers SetBuffer AddBindHost DelBindHost ListBindHosts SetBindHost SetUserBindHost ClearBindHost ClearUserBindHost ShowBindHost Jump Disconnect Connect Uptime LoadMod UnloadMod ReloadMod UpdateMod ShowMOTD SetMOTD AddMOTD ClearMOTD ListPorts AddPort DelPort Rehash SaveConfig ListUsers ListAllUserNetworks ListChans ListClients Traffic Broadcast Shutdown Restart

/bar add znc_commands window right 14 1 znc_commands
/set weechat.bar.znc_commands.conditions "${buffer.full_name} =~ \.*status$ && ${window.number} == 1"
/set weechat.bar.znc_commands.size_max 14

/trigger add hsignal_znc_commands hsignal znc_commands
/trigger set hsignal_znc_commands command "/command -buffer ${buffer.full_name} * /quote znc help ${_bar_item_line};/command -buffer ${buffer.full_name} * /input delete_line;/command -buffer ${buffer.full_name} * /input insert ${_bar_item_line}\x20"

/key bindctxt mouse @item(znc_commands):button1 hsignal:znc_commands  

/eval /ruby eval -oc print "/set trigger.trigger.hsignal_znc_commands.regex #{%w[${plugins.var.znc_commands}].map.with_index { |command, line| "/^%s$/%s/_bar_item_line" % [line, command]; }.join(' ')}"

/eval /ruby eval -oc print "/set plugins.var.python.text_item.znc_commands private #{%w[${plugins.var.znc_commands}].map { |command| suffix = command.gsub(/.*?([A-Z][A-Z]+|[A-Z][a-z]+)$/, '\1').gsub(/([^s])s$/, '\1'); '\${color:\${info:nick_color_name,%s}}%s\${\n}' % [suffix, command]; }.join}" 

This bar will be exactly like a default nicklist bar. That is, right-positionned with vertical filling. But instead of nicknames, it will contains a znc command per line. If you click on a command, the input bar will be filled with the command name, then you add whatever you want or simply press enter. Futhermore, this will send help command to znc.

Layouts

Layout highlight-or-news

/eval /ruby eval -oc print "/window splith #{(8.0 / ${window[gui_current_window].win_height} * 100).to_i}"
/buffer add -switch highmon
/window 1
/layout store highlight-or-news

Note: Instead of having only one window, we split it to create another one that we will use to show all highlights.

Layout highlight-or-news-and-conky

/window 2
/window splitv 85
/buffer exec.conky
/window 1
/layout store highlight-or-news-and-conky

Note: split the highlight monitor window in 2 and show conky in the new one

Channel Monitor

WeeChat Screenshot

/buffer_autoset add core.chanmon title Channels Monitor

/trigger add chanmon_like print ""
/trigger set chanmon_like conditions "${buffer.local_variables.type} == channel && ${tg_tags} =~ ,irc_privmsg, && ${buffer.full_name} != irc.freenode.##news"
/trigger set chanmon_like command "/print -newbuffer chanmon -tags ${tg_tags} ${color:${info:nick_color_name,${server}}}${cut:4,${color:${weechat.color.chat_prefix_more}}${weechat.look.prefix_align_more},${server}}${color:${info:nick_color_name,${channel}}}${channel}\t${if:${tg_tags} !~ ,irc_action,?${weechat.look.quote_nick_prefix}${tg_prefix}${color:reset}${weechat.look.quote_nick_suffix}:${tg_prefix}${color:reset}} ${tg_message}"

This trigger create a new buffer named chanmon. This buffer will contain all the messages from all the channels you are on. This is almost identical to the scripts chanmon.pl but without any options.

Highlight Monitor

/eval /set weechat.startup.command_after_plugins "${weechat.startup.command_after_plugins};/buffer add highmon"

/buffer_autoset add core.highmon title Highlight Monitor

/trigger add highmon_like print ""
/trigger set highmon_like conditions "${tg_highlight} == 1 && ${tg_displayed} == 1 && ${buffer.local_variables.type} == channel && ${tg_tags} =~ ,irc_privmsg,"
/trigger set highmon_like command "/print -newbuffer highmon -tags ${tg_tags} ${color:${info:nick_color_name,${server}}}${cut:4,${color:${weechat.color.chat_prefix_more}}${weechat.look.prefix_align_more},${server}}${color:${info:nick_color_name,${channel}}}${channel}\t${if:${tg_tags} !~ ,irc_action,?${weechat.look.quote_nick_prefix}${tg_prefix}${color:reset}${weechat.look.quote_nick_suffix}:${tg_prefix}${color:reset}} ${tg_message}"

This trigger create a new buffer named highmon. This buffer will contain all the highlighted message from all the channels you are on. This is similar to the highmon.pl script but without any options.

News

WeeChat Screenshot

/filter add news irc.freenode.##news !nick_newsly+!host_yano@unaffiliated/yano/bot/rssly,!irc_privmsg *
/filter add news_interest irc.freenode.##news nick_newsly+irc_privmsg,host_yano@unaffiliated/yano/bot/rssly+irc_privmsg !^(\s|\[)(Reddit [-] /r/netsec|Wired|freenode|EFF Updates|erry's blog|techdirt|TorrentFreak|Science Daily|Hacker News|CNET|phoronix|Ars Technica|The Intercept|france24|Radio Canada|Canoe|Huffington Post [-] Weird News|Journal du hacker|Futura Sciences)( \-| | |\])

##news is a news channel on Freenode. The bot is named newsly and you should create a filter to hide everything that is not from this bot. You should also create a filter to hide all the sites you don't mind about.

/trigger add news_modifier modifier weechat_print
/trigger set news_modifier conditions "${tg_tag_nick} =~ ^newsly_? && ${tg_tags} =~ ,irc_privmsg, && ${tg_buffer} == irc.freenode.##news"
/trigger set news_modifier regex "/.*// ==https?://.*====tg_message ==.*(https?://\S+).*==${re:1}==tg_message_nocolor /\+/%2B/tg_message_nocolor /,/%2C/tg_message_nocolor /\!/%21/tg_message_nocolor /\*/%2A/tg_message_nocolor"
/trigger set news_modifier command "/print -buffer ${tg_buffer} -tags ${tg_tags},url_${tg_message_nocolor} \t${tg_message}"

This trigger will remove the URL in the message and add it is a tag instead. Middle-click and press i on a message and the input bar will be fill with the URL, then click on the URL. If the URL is too long and is broken, press enter to echo it to ##news (nobody will see it because the channel is +m), go in bare mode (ALT+L) and click on the URL. You can also change this behavior to open the URL as soon as you click on the message. Middle-click and press m on a message and the input bar will be fill with the text and the URL.

/trigger set news_modifier regex "/.*// /.*/${tg_message_nocolor}/tg_message /^\[([^]]+)]/[${color:*${info:nick_color_name,${re:1}}}${re:1}${color:resetcolor}]/tg_message ==https?://.*====tg_message ==.*(https?://\S+).*==${re:1}==tg_message_nocolor /\+/%2B/tg_message_nocolor /,/%2C/tg_message_nocolor /\!/%21/tg_message_nocolor /\*/%2A/tg_message_nocolor"
/trigger set news_modifier command "/print -buffer ${tg_buffer} -tags ${tg_tags},url_${tg_message_nocolor} \t${tg_message}"

This is the same trigger as above, we just changed the regex and command section to replace the color in the message with colors that figure in the option weechat.color.chat_nick_colors instead.

/trigger set news_modifier regex "/.*// /.*/${tg_message_nocolor}/tg_prefix /.*/${tg_message_nocolor}/tg_message /^\[[^]]+\]//tg_message /^\[([^]]+)\].*/${re:1}/tg_prefix /^([^\-]+)/${color:_black,${info:nick_color_name,${re:1}}} ${re:1}/tg_prefix / - / ${color:-underline} /tg_prefix /$/ ${color:!}/tg_prefix ==\(?https?://.*====tg_message ==.*(https?://\S+).*==${re:1}==tg_message_nocolor /\+/%2B/tg_message_nocolor /,/%2C/tg_message_nocolor /\!/%21/tg_message_nocolor /\*/%2A/tg_message_nocolor"
/trigger set news_modifier command "/print -buffer ${tg_buffer} -tags ${tg_tags},url_${tg_message_nocolor} \t${tg_prefix}${color:reset}${tg_message}"

Again, the same trigger. But this time we use powerline symbols and the colors from weechat.color.chat_nick_colors.

/trigger set news_modifier command "/print -buffer ${tg_buffer} -tags ${tg_tags},url_${tg_message_nocolor} \t${tg_prefix}${tg_message}"

Same trigger (must be used with the regex above, from the powerline version) but color the whole message.

/trigger add hsignal_news_click hsignal news_click
/trigger set hsignal_news_click regex "/.*,url_([^,]+).*/${re:1}/_chat_line_tags"
/trigger set hsignal_news_click command "/command -buffer ${buffer.full_name} core /input insert ${if:${_key}==m?${_chat_line_message} }${_chat_line_tags}\x20"

/key bindctxt cursor @chat(irc.freenode.##news):i hsignal:news_click;/cursor stop
/key bindctxt cursor @chat(irc.freenode.##news):m hsignal:news_click;/cursor stop

ptpb

/alias add ptpburl /exec -sh -hsignal ptpburl $* 2>&1 | curl -sF c=@- https://ptpb.pw/?u=1
/trigger add ptpburl hsignal ptpburl
/trigger set ptpburl command "/command -buffer ${buffer.full_name} core /input delete_line;/command -buffer ${buffer.full_name} core /input insert ${out}"

This allow you to type /ptpburl uptime for example, to send the output of the uptime command to ptpb. Your input bar content will be replaced by the url of the paste. This way you can visit the URL to see if there is sensitive information before giving the url to everyone. You may wonder why I didn't used something like: /exec -sh -pipe "/input delete_line;/input insert " $* 2>&1 | curl -sF c=@- https://ptpb.pw/?u=1. Well If we use this, the input bar will be filled with the command and not the url.

Dev info

WeeChat Screenshot

/trigger add devinfofr hsignal devinfofr
/trigger set devinfofr regex "/\n/ /out / (stable_number|git|git_scripts|next_stable|next_stable_number):\S+//out /^stable:(\S+)/La version stable de WeeChat est la ${re:1}./out / stable_date:(\S+)/ Elle est la version stable depuis le ${re:1}${info:ruby_eval,require 'date'; print ' (' + (Date.today.mjd - Date.parse('${re:1}').mjd).to_s + ' jours)'}./out / devel:(\S+)/ La version devel de WeeChat est la ${re:1}./out / next_stable_date:(\S+)/ La prochaine stable devrait arriver aux alentour du ${re:1}${info:ruby_eval,require 'date'; print ' (' + (Date.parse('${re:1}').mjd - Date.today.mjd).to_s + ' jours)'}./out /([0-9]{4})-01-([0-9]{2})/${re:2} Janvier ${re:1}/out /([0-9]{4})-02-([0-9]{2})/${re:2} Février ${re:1}/out /([0-9]{4})-03-([0-9]{2})/${re:2} Mars ${re:1}/out /([0-9]{4})-04-([0-9]{2})/${re:2} Avril ${re:1}/out /([0-9]{4})-05-([0-9]{2})/${re:2} Mai ${re:1}/out /([0-9]{4})-06-([0-9]{2})/${re:2} Juin ${re:1}/out /([0-9]{4})-07-([0-9]{2})/${re:2} Juillet ${re:1}/out /([0-9]{4})-08-([0-9]{2})/${re:2} Août ${re:1}/out /([0-9]{4})-09-([0-9]{2})/${re:2} Septembre ${re:1}/out /([0-9]{4})-10-([0-9]{2})/${re:2} Octobre ${re:1}/out /([0-9]{4})-11-([0-9]{2})/${re:2} Novembre ${re:1}/out /([0-9]{4})-12-([0-9]{2})/${re:2} Décembre ${re:1}/out"
/trigger set devinfofr command "/command -buffer ${buffer.full_name} * /say ${out}"

/trigger add devinfo hsignal devinfo
/trigger set devinfo regex "/\n/ /out / (stable_number|git|git_scripts|next_stable|next_stable_number):\S+//out /^stable:(\S+)/The stable version of WeeChat is ${re:1}./out / stable_date:(\S+)/ It is the stable version since ${re:1}${info:ruby_eval,require 'date'; print ' (' + (Date.today.mjd - Date.parse('${re:1}').mjd).to_s + ' days)'}./out / devel:(\S+)/ The devel version of WeeChat is ${re:1}./out / next_stable_date:(\S+)/ The next stable should be release around ${re:1}${info:ruby_eval,require 'date'; print ' (' + (Date.parse('${re:1}').mjd - Date.today.mjd).to_s + ' days)'}./out /([0-9]{4})-01-([0-9]{2})/January ${re:2} ${re:1}/out /([0-9]{4})-02-([0-9]{2})/February ${re:2} ${re:1}/out /([0-9]{4})-03-([0-9]{2})/March ${re:2} ${re:1}/out /([0-9]{4})-04-([0-9]{2})/April ${re:2} ${re:1}/out /([0-9]{4})-05-([0-9]{2})/May ${re:2} ${re:1}/out /([0-9]{4})-06-([0-9]{2})/June ${re:2} ${re:1}/out /([0-9]{4})-07-([0-9]{2})/July ${re:2} ${re:1}/out /([0-9]{4})-08-([0-9]{2})/August ${re:2} ${re:1}/out /([0-9]{4})-09-([0-9]{2})/September ${re:2} ${re:1}/out /([0-9]{4})-10-([0-9]{2})/October ${re:2} ${re:1}/out /([0-9]{4})-11-([0-9]{2})/November ${re:2} ${re:1}/out /([0-9]{4})-12-([0-9]{2})/December ${re:2} ${re:1}/out"
/trigger set devinfo command "/command -buffer ${buffer.full_name} * /say ${out}"

/alias add devinfo /exec -norc -timeout 5 -hsignal devinfo url:https://weechat.org/dev/info/all/
/alias add devinfofr /exec -norc -timeout 5 -hsignal devinfofr url:https://weechat.org/dev/info/all/

These alias send info about the current stable version of WeeChat and the next stable to the channel. The alias call exec and the output of exec is send as a hsignal. So the triggers handle the output.

Highlight

/set weechat.look.highlight *pascalpoitras*
/buffer_autoset add irc.bitlbee.#twitter_pascalpoitras* highlight_words freenode,snoonet,*weechat*
/buffer_autoset add irc.bitlbee.#LET highlight_regex .*
/buffer_autoset add irc.bitlbee.#deals highlight_regex .*
/buffer_autoset add irc.freenode.##reddit-hockey highlight_regex (^GOAL: MTL.*|^Le But: MTL.*)

Triggers

/trigger add upgrade_scripts signal day_changed
/trigger set upgrade_scripts command "/script update;/wait 10s /script upgrade"

The trigger upgrade_scripts will update the local script cache and then upgrade all the installed scripts at midnight.

/trigger add marie_birthday signal day_changed
/trigger set marie_birthday conditions "${tg_signal_data} =~ 03-22$"
/trigger set marie_birthday command "/command -buffer ${sec.data.mariechannel} ruby /ruby eval -o print "BONNNE FÊTEEEE!!! BON #{${date:%Y} - 1984}ieme anniversaire!!!""

The trigger marie_birthday will be triggered the March 22 of each years at midnight to tell my friend "happy birthday"

/trigger add new_year signal day_changed
/trigger set new_year conditions "${tg_signal_data} =~ 01-01$"
/trigger set new_year command "/command -buffer ${sec.data.mariechannel} irc /msg * BONNNE ANNÉE ${date:%Y}!!! santé, bonheur et sexe a toi chère amie :)"

The Happy New Year trigger!

If you want to try if the above triggers works (don't have to wait until the date) type the following

/ruby eval Weechat.hook_signal_send('day_changed', Weechat::WEECHAT_HOOK_SIGNAL_STRING, '2018-01-02')

The first trigger, upgrade_scripts will then be triggered (not the other one)

WeeChat Screenshot WeeChat Screenshot

/trigger add modifier_is_nick_valid modifier input_text_display 
/trigger set modifier_is_nick_valid conditions "${tg_string_nocolor} =~ ^/nick .+ && ${buffer.plugin.name} == irc"
/trigger set modifier_is_nick_valid regex "==/nick (.+)==${re:1}==tg_string_nocolor ===/nick (.+)===/nick ${if:${info:irc_is_nick,${tg_string_nocolor}}&&${cut:${info:irc_server_isupport_value,${server},NICKLEN},,${tg_string_nocolor}}==${tg_string_nocolor}?${color:*green}:${color:*red}}${re:1}      -- NICKLEN:${color:-bold} ${info:perl_eval,print ${info:irc_server_isupport_value,${server},NICKLEN} - (${buffer.input_buffer_length} - 6) . ' /'} ${info:irc_server_isupport_value,${server},NICKLEN}  ${color:bold}Allowed Chars: ${color:-bold}${esc:a-zA-Z0-9_-\[]{}^`|}===tg_string"

The trigger modifier_is_nick_valid will give you hint about max nickname length and available character in nickname and will also tell you if the nick is valid (green) or not (red). Note that it doesn't works with -all option of the /nick command.

Keys

/key bindctxt cursor @item(buffer_nicklist):v /window ${_window_number};/voice ${nick}
/key bindctxt cursor @item(buffer_nicklist):o /window ${_window_number};/op ${nick}
/key bindctxt cursor @item(buffer_nicklist):V /window ${_window_number};/devoice ${nick}
/key bindctxt cursor @item(buffer_nicklist):O /window ${_window_number};/deop ${nick}
/key bindctxt cursor @chat(*):s /window ${_window_number};/slap ${_chat_line_nick};/cursor stop
/key bindctxt cursor @item(buffer_nicklist):s /window ${_window_number};/slap ${nick};/cursor stop
/key bindctxt cursor @item(buflist):d /command -buffer ${full_name} irc /quote znc detach ${short_name};/cursor stop
/key bindctxt cursor @item(buflist):h /command -buffer ${full_name} irc /allchan -current buffer hide;/command -buffer ${full_name} irc /allpv -current buffer hide;/cursor stop
/key bindctxt cursor @item(buflist):H /command -buffer ${full_name} irc /allchan -current buffer unhide;/command -buffer ${full_name} irc /allpv -current buffer unhide;/cursor stop
/key bindctxt cursor @chat(*):g /window ${_window_number};/customgrep ${_chat_line_nick};/cursor stop
/key bindctxt cursor @item(buffer_nicklist):g /window ${_window_number};/customgrep ${nick};/cursor stop

/key bindctxt cursor @chat(*):a /command -buffer ${buffer.full_name} core /input insert ${_chat_bol}\x20;/cursor stop
/key bindctxt cursor @chat(*):e /command -buffer ${buffer.full_name} core /input insert ${_chat_eol}\x20;/cursor stop
/key bindctxt cursor @chat(*):w /command -buffer ${buffer.full_name} core /input insert ${_chat_word}\x20;/cursor stop

I use /buffer hide when I want to hide a buffer in the buffers bar but still want to be able to access it. I use /znc detach on all channels that I have joined only for logging the discussion.

Others Keyboard shortcuts

/key bind meta-meta2-A /bar scroll nicklist * -100%
/key bind meta-meta2-B /bar scroll nicklist * +100%
/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next

/key bind ctrl-V /eval ${if:${sec.data.hiddenbuffers} !~ \b${buffer_visited[last_gui_buffer_visited].buffer.full_name}\b?/mute /alias add temphiddenbuf /buffer cycle ${sec.data.hiddenbuffers} ${buffer_visited[last_gui_buffer_visited].buffer.full_name}};/temphiddenbuf

The last bind cycle through hidden buffers in ${sec.data.hiddenbuffers} and then goes back to the buffer were the first ctrl-v was pressed.

Alias

/alias add cq allpv /buffer close
/alias add slap /me slaps $1 around a bit with a large trout
/alias add customgrep /input delete_line;/input insert /grep log */$server/$channel.* -a ^\[\d{2}:\d{2}:\d{2}\] <%{escape $1}>\x20
/alias add znc /quote znc
/alias add fu /say (╹◡╹)凸 $*
/alias add multicomm /alias add temp $*;/temp
/alias add znc-o /exec -o -sh znc --version | head -1 | cut -d' ' -f1-2
/alias add funnyversion /eval ${if:$*==?${info:ruby_eval,print %W[mIRC irssi KVIrc HexChat AdiIRC BitchX].sample}:$*} ${info:version} (git: ${info:version_git}) [compiled on ${info:date}]

The multicomm alias will allow you to type multi command like this /multicomm comm1;comm2

Filters

/set irc.look.smart_filter on
/filter add irc_smart *,!irc.undernet.* irc_smart_filter *

Custom join color

/set weechat.color.chat_prefix_join 121
/set weechat.color.chat_host 31
/set irc.color.message_join 121

The weechat.color.chat_host option will also set this color for part and quit. To have a different color, for example, a host in red for parts and quits and green for joins, see this.

Custom part and quit

/set weechat.color.chat_prefix_quit 131
/set irc.color.message_quit 131

The remaining IRC options

/set irc.server_default.away_check 5
/set irc.server_default.away_check_max_nicks 25
/set irc.color.nick_prefixes "q:lightred;a:lightcyan;o:121;h:lightmagenta;v:229;*:lightblue"
/set irc.network.ban_mask_default "*!*@$host"
/set irc.look.buffer_switch_autojoin off
/set irc.look.buffer_switch_join off
/set irc.look.color_nicks_in_nicklist on
/set irc.look.part_closes_buffer on

The remaining Weechat options

/set weechat.look.bar_more_down "▼"
/set weechat.look.bar_more_left "◀"
/set weechat.look.bar_more_right "▶"
/set weechat.look.bar_more_up "▲"
/set weechat.look.buffer_time_format "${253}%H${245}%M"
/set weechat.look.color_inactive_message off
/set weechat.look.color_inactive_prefix off
/set weechat.look.color_inactive_prefix_buffer off
/set weechat.look.color_inactive_window off
/set weechat.look.day_change_message_1date ▬▬▶ %a, %d %b %Y ◀▬▬
/set weechat.look.day_change_message_2dates ▬▬▶ %%a, %%d %%b %%Y (%a, %d %b %Y) ◀▬▬
/set weechat.look.item_buffer_filter "•"
/set weechat.look.prefix_align_min 0
/set weechat.look.prefix_align_max 10
/set weechat.look.prefix_join "▬▬▶"
/set weechat.look.prefix_quit "◀▬▬"
/set weechat.look.prefix_suffix "│"
/set weechat.look.read_marker_string "─"


/set weechat.color.bar_more 229
/set weechat.color.chat_highlight lightred
/set weechat.color.chat_highlight_bg default
/set weechat.color.chat_nick_colors "cyan,magenta,green,brown,lightblue,lightcyan,lightmagenta,lightgreen,blue"
/set weechat.color.chat_prefix_more 31
/set weechat.color.chat_prefix_suffix 31
/set weechat.color.chat_read_marker 31
/set weechat.color.chat_time 239
/set weechat.color.chat_delimiters 31
/set weechat.color.separator 31
/set weechat.color.status_data_highlight 163
/set weechat.color.status_data_msg 229
/set weechat.color.status_data_private 121
/set weechat.color.status_more 229
/set weechat.color.status_name 121
/set weechat.color.status_name_ssl 121

The following command will let you run all the commands of my configuration (not really recommended, you should take only what you want and understand)

download myweechat.md and then

/secure passphrase <pass>
/secure set bncaddrport <addr/port>
/secure set bncpass <pass>
/secure set relaypass <pass>
/secure set hiddenbuffers <list of hidden buffers full name>
/script install buffer_autoset.py autosort.py grep.py text_item.py
/secure set mariechannel <buffer fullname of my friend's channel>

Once scripts are installed

/eval /exec -oc sed -E 's/^ *//;/^(\/secure|\/script)/d;/^\//!d' ${env:HOME}/myweechat.md
@jmcbee

This comment has been minimized.

Show comment Hide comment
@jmcbee

jmcbee Nov 5, 2014

r3m/freenode:${sec.data.bncpass} what does this mean?

jmcbee commented Nov 5, 2014

r3m/freenode:${sec.data.bncpass} what does this mean?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Nov 6, 2014

This is my encrypted ZNC password in sec.conf

Owner

pascalpoitras commented Nov 6, 2014

This is my encrypted ZNC password in sec.conf

@Axighi

This comment has been minimized.

Show comment Hide comment
@Axighi

Axighi Apr 17, 2015

how to run this script?

Axighi commented Apr 17, 2015

how to run this script?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 19, 2015

Just copy all the line and paste it in weechat and press ctrl+y
dont forget : some lines need change

Owner

pascalpoitras commented Apr 19, 2015

Just copy all the line and paste it in weechat and press ctrl+y
dont forget : some lines need change

@jcvfen

This comment has been minimized.

Show comment Hide comment
@jcvfen

jcvfen Jul 26, 2015

nothing happens in buffer when i do /buffer exec.conky
I do have conky installed with ur conkyrc

jcvfen commented Jul 26, 2015

nothing happens in buffer when i do /buffer exec.conky
I do have conky installed with ur conkyrc

@cyberviking

This comment has been minimized.

Show comment Hide comment
@cyberviking

cyberviking Mar 13, 2016

Look awesome, but why not share your .weechat folder ? Everything is inside, am i wrong ?

Look awesome, but why not share your .weechat folder ? Everything is inside, am i wrong ?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Mar 15, 2016

@jcvfen you need to enable transparency to see the conky. (the conky is on the desktop not in weechat)
@cyberviking you're right but I think it is more useful to know how to use the commands

Owner

pascalpoitras commented Mar 15, 2016

@jcvfen you need to enable transparency to see the conky. (the conky is on the desktop not in weechat)
@cyberviking you're right but I think it is more useful to know how to use the commands

@Grogglex

This comment has been minimized.

Show comment Hide comment
@Grogglex

Grogglex Apr 18, 2017

@pascalpoitras Is pushover working in the latest WeeChat Dev? I've copied your config but push notifications don't seem to be working.

@pascalpoitras Is pushover working in the latest WeeChat Dev? I've copied your config but push notifications don't seem to be working.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 19, 2017

@Grogglex yes it works here with the latest dev

WeeChat 1.8-dev (git: v1.7-147-g084f9d7) [compiled on Apr 18 2017 14:44:47]
I also upgrade all script at midnight

do you use pushbullet?

Owner

pascalpoitras commented Apr 19, 2017

@Grogglex yes it works here with the latest dev

WeeChat 1.8-dev (git: v1.7-147-g084f9d7) [compiled on Apr 18 2017 14:44:47]
I also upgrade all script at midnight

do you use pushbullet?

@ralpheeee88

This comment has been minimized.

Show comment Hide comment
@ralpheeee88

ralpheeee88 Apr 23, 2017

@pascalpoitras i had to do a fresh install....i copied my .weechat folder ...installed weechat and copied my folder back....unfortunately weechat just opens as a fresh start....any pointers form you or anyone welocme!!!

@pascalpoitras i had to do a fresh install....i copied my .weechat folder ...installed weechat and copied my folder back....unfortunately weechat just opens as a fresh start....any pointers form you or anyone welocme!!!

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 23, 2017

@ralpheeee88 you did the right steps, are you sure you didn't put the .weechat backup inside .weechat like so ~/.weechat/.weechat ?

Owner

pascalpoitras commented Apr 23, 2017

@ralpheeee88 you did the right steps, are you sure you didn't put the .weechat backup inside .weechat like so ~/.weechat/.weechat ?

@PowerSchill

This comment has been minimized.

Show comment Hide comment
@PowerSchill

PowerSchill May 11, 2017

Is there a way to hide inactive buffers? I've used the buffer_autoclose script in the past but it doesn't appear to work with buflist. Sometimes I want to be able to focus on only the buffers that have had activity.

Is there a way to hide inactive buffers? I've used the buffer_autoclose script in the past but it doesn't appear to work with buflist. Sometimes I want to be able to focus on only the buffers that have had activity.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras May 12, 2017

@PowerSchill
There's probably a better way (like really using the API) but you can do this way:

This trigger will unhide hidden buffers whenever a message is received

/trigger addreplace reattach print "" "${buffer.hidden} == 1 && ${tg_tag_notify} == message" "" "/command -buffer irc.$server.$channel core /buffer unhide"

replace message by all or highlight if you want

then you can create another trigger (type timer) that will check each ten seconds (10000) if any of the channels had no activity since 100 seconds

/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100)"

it works here on the dev version, but use it at your own risk, I dont tested it a lot

Owner

pascalpoitras commented May 12, 2017

@PowerSchill
There's probably a better way (like really using the API) but you can do this way:

This trigger will unhide hidden buffers whenever a message is received

/trigger addreplace reattach print "" "${buffer.hidden} == 1 && ${tg_tag_notify} == message" "" "/command -buffer irc.$server.$channel core /buffer unhide"

replace message by all or highlight if you want

then you can create another trigger (type timer) that will check each ten seconds (10000) if any of the channels had no activity since 100 seconds

/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100)"

it works here on the dev version, but use it at your own risk, I dont tested it a lot

@StarlitGhost

This comment has been minimized.

Show comment Hide comment
@StarlitGhost

StarlitGhost May 19, 2017

I made a small modification so it doesn't hide the buffer you currently have focused:

/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100 && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}')

(I just added && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}' to the condition)

I'd like to stop it hiding buffers which are in the hotlist, too, but I haven't figured that out yet.

I made a small modification so it doesn't hide the buffer you currently have focused:

/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100 && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}')

(I just added && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}' to the condition)

I'd like to stop it hiding buffers which are in the hotlist, too, but I haven't figured that out yet.

@StarlitGhost

This comment has been minimized.

Show comment Hide comment
@StarlitGhost

StarlitGhost May 19, 2017

Got the hotlist via perlexec:

/perlexec my $h = weechat::infolist_get('hotlist', '', ''); my $hotlist; while(weechat::infolist_next($h)) { $hotlist.=weechat::infolist_string($h, "buffer_name")." "; } weechat::infolist_free($h); weechat::print($buffer, $hotlist);

Attempting to use this in the trigger via && index($hotlist, '\${server}.\${channel}') == -1 isn't working though - buffers on the hotlist are still being hidden.

Full attempt:
/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec my $hotlist = weechat::infolist_get('hotlist', '', '')\; my $h\; while(weechat::infolist_next($hotlist)) { $h.=weechat::infolist_string($hotlist, 'buffer_name').' '\; } weechat::infolist_free($hotlist)\; weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100 && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}' && index($h, '\${server}.\${channel}') == -1)"

Getting a little unwieldy now, heh.

StarlitGhost commented May 19, 2017

Got the hotlist via perlexec:

/perlexec my $h = weechat::infolist_get('hotlist', '', ''); my $hotlist; while(weechat::infolist_next($h)) { $hotlist.=weechat::infolist_string($h, "buffer_name")." "; } weechat::infolist_free($h); weechat::print($buffer, $hotlist);

Attempting to use this in the trigger via && index($hotlist, '\${server}.\${channel}') == -1 isn't working though - buffers on the hotlist are still being hidden.

Full attempt:
/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec my $hotlist = weechat::infolist_get('hotlist', '', '')\; my $h\; while(weechat::infolist_next($hotlist)) { $h.=weechat::infolist_string($hotlist, 'buffer_name').' '\; } weechat::infolist_free($hotlist)\; weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100 && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}' && index($h, '\${server}.\${channel}') == -1)"

Getting a little unwieldy now, heh.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras May 19, 2017

@matthewcox nice works, for the hotlist you can use this

'${buffer[${info:irc_buffer,${server},${channel}}].hotlist}' ne '0x0')

to test if the buffer is in the hotlist

Owner

pascalpoitras commented May 19, 2017

@matthewcox nice works, for the hotlist you can use this

'${buffer[${info:irc_buffer,${server},${channel}}].hotlist}' ne '0x0')

to test if the buffer is in the hotlist

@StarlitGhost

This comment has been minimized.

Show comment Hide comment
@StarlitGhost

StarlitGhost May 19, 2017

Well now, that's much simpler. Thanks!

Final complete trigger, which hides buffers after 100 seconds of inactivity if they both aren't the current buffer and are not in the hotlist:

/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100 && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}' && '\${buffer[\${info:irc_buffer,\${server},\${channel}}].hotlist}' eq '0x0')"

And I look forward to jettisoning all of this once buflist supports it natively :)

StarlitGhost commented May 19, 2017

Well now, that's much simpler. Thanks!

Final complete trigger, which hides buffers after 100 seconds of inactivity if they both aren't the current buffer and are not in the hotlist:

/trigger addreplace detach timer 10000;0;0 "" "" "/allchan /eval /perlexec weechat::command('', '/command -buffer irc.\${server}.\${channel} core /buffer hide') if ((${date:%s} - \${buffer[\${info:irc_buffer,\${server},\${channel}}].lines.last_line.data.date}) > 100 && '\${window.buffer.full_name}' !~ 'irc.\${server}.\${channel}' && '\${buffer[\${info:irc_buffer,\${server},\${channel}}].hotlist}' eq '0x0')"

And I look forward to jettisoning all of this once buflist supports it natively :)

@PentSec

This comment has been minimized.

Show comment Hide comment
@PentSec

PentSec Jun 11, 2017

i can see your color conf. i put all command, but i can see the same colors of my terminal, I hope can you help me.

PentSec commented Jun 11, 2017

i can see your color conf. i put all command, but i can see the same colors of my terminal, I hope can you help me.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Jun 11, 2017

@PentSec are you talking about the background color? it's the background color of my terminal (urxvt), I use the famous solarized dark color scheme, otherwise I always use these color : 31, 121, 229 in weechat

Owner

pascalpoitras commented Jun 11, 2017

@PentSec are you talking about the background color? it's the background color of my terminal (urxvt), I use the famous solarized dark color scheme, otherwise I always use these color : 31, 121, 229 in weechat

@Drowze

This comment has been minimized.

Show comment Hide comment
@Drowze

Drowze Nov 14, 2017

/set irc.look.server_buffer independent

Why isn't this the default?! Thank you for your gist! Was really helpful 👍

Drowze commented Nov 14, 2017

/set irc.look.server_buffer independent

Why isn't this the default?! Thank you for your gist! Was really helpful 👍

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Nov 14, 2017

@Drowze Thanks! When servers buffers are merged with core you can use CTRL+X to cycle through them, which may be useful, there is probably other reason that I'm not aware of

Owner

pascalpoitras commented Nov 14, 2017

@Drowze Thanks! When servers buffers are merged with core you can use CTRL+X to cycle through them, which may be useful, there is probably other reason that I'm not aware of

@felipemeamaral

This comment has been minimized.

Show comment Hide comment
@felipemeamaral

felipemeamaral Nov 16, 2017

@pascalpoitras I'm trying to do the same as you but just with the users nicks in every channel.

E.g. Take the user nick color as the background of the message and insert a powerline glyph at the end.
Like you did with the #news buffer.

If you could help I'll be very glad, my friend.
Thank you for sharing your knowledge with us.

@pascalpoitras I'm trying to do the same as you but just with the users nicks in every channel.

E.g. Take the user nick color as the background of the message and insert a powerline glyph at the end.
Like you did with the #news buffer.

If you could help I'll be very glad, my friend.
Thank you for sharing your knowledge with us.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Nov 16, 2017

@pulgalipe thanks! here is a minimal solution just to help you get started:

/trigger add plsymbol_nick modifier weechat_print
/trigger set plsymbol_nick conditions "${tg_tags} =~ ,irc_privmsg,"
/trigger set plsymbol_nick regex "/.*/${color:black,${info:nick_color_name,${tg_prefix_nocolor}}}${tg_prefix_nocolor} ${color:reverse} ${color:reset}${tg_message}/"
Owner

pascalpoitras commented Nov 16, 2017

@pulgalipe thanks! here is a minimal solution just to help you get started:

/trigger add plsymbol_nick modifier weechat_print
/trigger set plsymbol_nick conditions "${tg_tags} =~ ,irc_privmsg,"
/trigger set plsymbol_nick regex "/.*/${color:black,${info:nick_color_name,${tg_prefix_nocolor}}}${tg_prefix_nocolor} ${color:reverse} ${color:reset}${tg_message}/"
@felipemeamaral

This comment has been minimized.

Show comment Hide comment
@felipemeamaral

felipemeamaral Dec 3, 2017

@pascalpoitras This is just what I was looking for.
Thank you very much. :)

@pascalpoitras This is just what I was looking for.
Thank you very much. :)

@cbodden

This comment has been minimized.

Show comment Hide comment
@cbodden

cbodden Dec 4, 2017

This is always a great reference. Thanks for sharing.

cbodden commented Dec 4, 2017

This is always a great reference. Thanks for sharing.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Dec 10, 2017

@cbodden thanks!

Owner

pascalpoitras commented Dec 10, 2017

@cbodden thanks!

@blazingnode

This comment has been minimized.

Show comment Hide comment
@blazingnode

blazingnode Jan 4, 2018

Can you explain how to fix the conky? its displaying double eth0 and double ram on weechat.

thanks

Can you explain how to fix the conky? its displaying double eth0 and double ram on weechat.

thanks

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Jan 4, 2018

@blazingnode I Have no idea. you should go to #conky on freenode. My config is almost identical to the default one, I just put my interface name

Owner

pascalpoitras commented Jan 4, 2018

@blazingnode I Have no idea. you should go to #conky on freenode. My config is almost identical to the default one, I just put my interface name

@vasyl83

This comment has been minimized.

Show comment Hide comment
@vasyl83

vasyl83 Feb 6, 2018

did a fresh install of weechat on ubuntu 16.04 (weechat version 2.0.1)
/set aspell.color.suggestions *green fails needs to be replaced with /set aspell.color.suggestion *green
next, /autosort replacements add ## # doesn't work anymore
also /buffer add -switch highmon errors out with Error with command "/buffer add -switch highmon" (help on command: /help buffer)

any idea how to correct that?

vasyl83 commented Feb 6, 2018

did a fresh install of weechat on ubuntu 16.04 (weechat version 2.0.1)
/set aspell.color.suggestions *green fails needs to be replaced with /set aspell.color.suggestion *green
next, /autosort replacements add ## # doesn't work anymore
also /buffer add -switch highmon errors out with Error with command "/buffer add -switch highmon" (help on command: /help buffer)

any idea how to correct that?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Feb 6, 2018

@vasyl83 Hi, I am using the devel version of weechat, this is the reason you get an error with /buffer add (you need 2.1)
you're right for suggestion without an s, thanks I will fix that, and for autosort you,re also right, I need to change that!

so for the highmon, you can use the script highmon.pl or use the devel version of weechat

Owner

pascalpoitras commented Feb 6, 2018

@vasyl83 Hi, I am using the devel version of weechat, this is the reason you get an error with /buffer add (you need 2.1)
you're right for suggestion without an s, thanks I will fix that, and for autosort you,re also right, I need to change that!

so for the highmon, you can use the script highmon.pl or use the devel version of weechat

@vasyl83

This comment has been minimized.

Show comment Hide comment
@vasyl83

vasyl83 Feb 6, 2018

@pascalpoitras Thanks Ill switch to devel then :)

vasyl83 commented Feb 6, 2018

@pascalpoitras Thanks Ill switch to devel then :)

@vasyl83

This comment has been minimized.

Show comment Hide comment
@vasyl83

vasyl83 Feb 6, 2018

@pascalpoitras Would you mind explaining the news section a little bit?
I just want to understand how to correctly filter then news I want to see.

Also the whole coloring thing. If I want powerline colors, do I only paste last lines?

vasyl83 commented Feb 6, 2018

@pascalpoitras Would you mind explaining the news section a little bit?
I just want to understand how to correctly filter then news I want to see.

Also the whole coloring thing. If I want powerline colors, do I only paste last lines?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Feb 6, 2018

@vasyl83 you need to modify the filter to choose which sites to hides
if you want the powerline symbol you can use (you also need a fonts that support these symbols)

/trigger add news_modifier modifier weechat_print
/trigger set news_modifier conditions "${tg_tag_nick} =~ ^newsly_? && ${tg_tags} =~ ,irc_privmsg, && ${tg_buffer} == irc.freenode.##news"
/trigger set news_modifier regex "/.*// /.*/${tg_message_nocolor}/tg_prefix /.*/${tg_message_nocolor}/tg_message /^\[[^]]+\]//tg_message /^\[([^]]+)\].*/${re:1}/tg_prefix /^([^\-]+)/${color:_black,${info:nick_color_name,${re:1}}} ${re:1}/tg_prefix / - / ${color:-underline} /tg_prefix /$/ ${color:!}/tg_prefix ==\(?https?://.*====tg_message ==.*(https?://\S+).*==${re:1}==tg_message_nocolor /\+/%2B/tg_message_nocolor /,/%2C/tg_message_nocolor /\!/%21/tg_message_nocolor /\*/%2A/tg_message_nocolor"
/trigger set news_modifier command "/print -buffer ${tg_buffer} -tags ${tg_tags},url_${tg_message_nocolor} \t${tg_prefix}${color:reset}${tg_message}"

for the filter you should look at the list of sites the bot displays news for
here

and then modify the second filter and keep the first one like it is

/filter add news irc.freenode.##news !nick_newsly+!host_yano@unaffiliated/yano/bot/rssly,!irc_privmsg *
/filter add news_interest irc.freenode.##news nick_newsly+irc_privmsg,host_yano@unaffiliated/yano/bot/rssly+irc_privmsg !^(\s|\[)(Reddit [-] /r/netsec|Wired|freenode|EFF Updates|erry's blog|techdirt|TorrentFreak|Science Daily|Hacker News|CNET|phoronix|Ars Technica|The Intercept|france24|Radio Canada|Canoe|Huffington Post [-] Weird News)( \-| | |\])

so here the second filter hide everything except the sites that are mentioned (/r/netsec/wired/freenode) and so on

Owner

pascalpoitras commented Feb 6, 2018

@vasyl83 you need to modify the filter to choose which sites to hides
if you want the powerline symbol you can use (you also need a fonts that support these symbols)

/trigger add news_modifier modifier weechat_print
/trigger set news_modifier conditions "${tg_tag_nick} =~ ^newsly_? && ${tg_tags} =~ ,irc_privmsg, && ${tg_buffer} == irc.freenode.##news"
/trigger set news_modifier regex "/.*// /.*/${tg_message_nocolor}/tg_prefix /.*/${tg_message_nocolor}/tg_message /^\[[^]]+\]//tg_message /^\[([^]]+)\].*/${re:1}/tg_prefix /^([^\-]+)/${color:_black,${info:nick_color_name,${re:1}}} ${re:1}/tg_prefix / - / ${color:-underline} /tg_prefix /$/ ${color:!}/tg_prefix ==\(?https?://.*====tg_message ==.*(https?://\S+).*==${re:1}==tg_message_nocolor /\+/%2B/tg_message_nocolor /,/%2C/tg_message_nocolor /\!/%21/tg_message_nocolor /\*/%2A/tg_message_nocolor"
/trigger set news_modifier command "/print -buffer ${tg_buffer} -tags ${tg_tags},url_${tg_message_nocolor} \t${tg_prefix}${color:reset}${tg_message}"

for the filter you should look at the list of sites the bot displays news for
here

and then modify the second filter and keep the first one like it is

/filter add news irc.freenode.##news !nick_newsly+!host_yano@unaffiliated/yano/bot/rssly,!irc_privmsg *
/filter add news_interest irc.freenode.##news nick_newsly+irc_privmsg,host_yano@unaffiliated/yano/bot/rssly+irc_privmsg !^(\s|\[)(Reddit [-] /r/netsec|Wired|freenode|EFF Updates|erry's blog|techdirt|TorrentFreak|Science Daily|Hacker News|CNET|phoronix|Ars Technica|The Intercept|france24|Radio Canada|Canoe|Huffington Post [-] Weird News)( \-| | |\])

so here the second filter hide everything except the sites that are mentioned (/r/netsec/wired/freenode) and so on

@vasyl83

This comment has been minimized.

Show comment Hide comment
@vasyl83

vasyl83 Feb 10, 2018

@pascalpoitras
DO I need to join ##news?

vasyl83 commented Feb 10, 2018

@pascalpoitras
DO I need to join ##news?

@vasyl83

This comment has been minimized.

Show comment Hide comment
@vasyl83

vasyl83 Feb 10, 2018

also should news appear in highlight monitor? cause they don't

vasyl83 commented Feb 10, 2018

also should news appear in highlight monitor? cause they don't

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Feb 10, 2018

@vasyl83 yes you need to join ##news
no it will not appears in highlight monitor

Owner

pascalpoitras commented Feb 10, 2018

@vasyl83 yes you need to join ##news
no it will not appears in highlight monitor

@weilbith

This comment has been minimized.

Show comment Hide comment
@weilbith

weilbith Feb 17, 2018

Hey @pascalpoitras
First: ty very much for this awesome guide!
I've the problem, that buffers in the buflist get shorten and marked with a + char at the end. Of course I've increased the window size of the buflist, but it doesn't help. C the screenshot. How can I solve this? In fact how can I increase the number of chars used for a buffers name?

weechat_buffername_bug

Hey @pascalpoitras
First: ty very much for this awesome guide!
I've the problem, that buffers in the buflist get shorten and marked with a + char at the end. Of course I've increased the window size of the buflist, but it doesn't help. C the screenshot. How can I solve this? In fact how can I increase the number of chars used for a buffers name?

weechat_buffername_bug

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Feb 17, 2018

@weilbith Hi!
Yes my config do not scale very well, In fact the buffer name max length is hardcoded. You would need to change the value 8 with another number. But, in case you change the value more than once, here is a better way:

If you want to try with, for example, 12, do this

/set plugins.var.buflist_buf_max_len 12
then, we will replace the hardcoded number to ${plugins.var.buflist_buf_max_len}

/set buflist.format.name "${if:${type}==server?${color:white}:${color_hotlist}}${if:${type}==server||${type}==channel||${type}==private?${if:${cutscr:${plugins.var.buflist_buf_max_len},+,${name}}!=${name}?${cutscr:${plugins.var.buflist_buf_max_len},${color:${weechat.color.chat_prefix_more}}+,${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK}:${name}}}:${cutscr:${plugins.var.buflist_buf_max_len}, ,${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK} :${name} }}}:${name}}"

then, if 12 is not what you want you just have to try another value with

/set plugins.var.buflist_buf_max_len another_value

I will upgrade my buflist soon to be scalable

Owner

pascalpoitras commented Feb 17, 2018

@weilbith Hi!
Yes my config do not scale very well, In fact the buffer name max length is hardcoded. You would need to change the value 8 with another number. But, in case you change the value more than once, here is a better way:

If you want to try with, for example, 12, do this

/set plugins.var.buflist_buf_max_len 12
then, we will replace the hardcoded number to ${plugins.var.buflist_buf_max_len}

/set buflist.format.name "${if:${type}==server?${color:white}:${color_hotlist}}${if:${type}==server||${type}==channel||${type}==private?${if:${cutscr:${plugins.var.buflist_buf_max_len},+,${name}}!=${name}?${cutscr:${plugins.var.buflist_buf_max_len},${color:${weechat.color.chat_prefix_more}}+,${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK}:${name}}}:${cutscr:${plugins.var.buflist_buf_max_len}, ,${if:${type}==server&&${info:irc_server_isupport_value,${name},NETWORK}?${info:irc_server_isupport_value,${name},NETWORK} :${name} }}}:${name}}"

then, if 12 is not what you want you just have to try another value with

/set plugins.var.buflist_buf_max_len another_value

I will upgrade my buflist soon to be scalable

@weilbith

This comment has been minimized.

Show comment Hide comment
@weilbith

weilbith Feb 17, 2018

@pascalpoitras

Awesome! Thank you very much.
It will need some time till I rly understand these complete format expressions. ^^

@pascalpoitras

Awesome! Thank you very much.
It will need some time till I rly understand these complete format expressions. ^^

@weilbith

This comment has been minimized.

Show comment Hide comment
@weilbith

weilbith Feb 17, 2018

@pascalpoitras
Hey again. Sry for being annoying, but I also adjust the nick names like u wrote for @felipemeamaral. I have some bug, where the nick name is simply empty. It seems not to correlate with specific users. For example in the screenshot this is just a bot which show messages for a GitHub repo. Means that is there no other "nick".

Furthermore I used a transparent background in my terminal (in the area of the screenshot not rly apparently, but the contrast is visible). Unfortunately the area after the arrow is black, what looks not so nice. I already tried to play with the /trigger set plsymbol_nick regex value, but don't get it working. Using the color value default to refer the command line colors, just selecting the color of the default foreground and not the background. Any idea?

weechat_nicks_missing

@pascalpoitras
Hey again. Sry for being annoying, but I also adjust the nick names like u wrote for @felipemeamaral. I have some bug, where the nick name is simply empty. It seems not to correlate with specific users. For example in the screenshot this is just a bot which show messages for a GitHub repo. Means that is there no other "nick".

Furthermore I used a transparent background in my terminal (in the area of the screenshot not rly apparently, but the contrast is visible). Unfortunately the area after the arrow is black, what looks not so nice. I already tried to play with the /trigger set plsymbol_nick regex value, but don't get it working. Using the color value default to refer the command line colors, just selecting the color of the default foreground and not the background. Any idea?

weechat_nicks_missing

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Feb 17, 2018

@weilbith
Hi,

Could you try this for the black arrow

/trigger set plsymbol_nick regex "/.*/${color:black,${info:nick_color_name,${tg_prefix_nocolor}}}${tg_prefix_nocolor} ${color:${info:nick_color_name,${tg_prefix_nocolor}},default} ${color:reset}${tg_message}/"

For the nick, did you change something to the trigger? if so can I see the trigger? And what is the nick of the bot, I would try with a nick with similar character

Owner

pascalpoitras commented Feb 17, 2018

@weilbith
Hi,

Could you try this for the black arrow

/trigger set plsymbol_nick regex "/.*/${color:black,${info:nick_color_name,${tg_prefix_nocolor}}}${tg_prefix_nocolor} ${color:${info:nick_color_name,${tg_prefix_nocolor}},default} ${color:reset}${tg_message}/"

For the nick, did you change something to the trigger? if so can I see the trigger? And what is the nick of the bot, I would try with a nick with similar character

@weilbith

This comment has been minimized.

Show comment Hide comment
@weilbith

weilbith Feb 18, 2018

@pascalpoitras
Wow, it works! Looks quite nice now. 👍

I think it is more a problem of the Slack plugin. Sry for that.

Which documentation u could recommend, if I wan't to get on the level u r?

weilbith commented Feb 18, 2018

@pascalpoitras
Wow, it works! Looks quite nice now. 👍

I think it is more a problem of the Slack plugin. Sry for that.

Which documentation u could recommend, if I wan't to get on the level u r?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Feb 18, 2018

@weilbith
The user guide and the plugin API reference guide available on https://weechat.org/doc/
And especially /eval and /trigger!
Also, if you use the devel version, you can use /python eval code (or perl, ruby..)

In my config, almost everything is done with /trigger, /eval and /ruby eval

Owner

pascalpoitras commented Feb 18, 2018

@weilbith
The user guide and the plugin API reference guide available on https://weechat.org/doc/
And especially /eval and /trigger!
Also, if you use the devel version, you can use /python eval code (or perl, ruby..)

In my config, almost everything is done with /trigger, /eval and /ruby eval

@remlap

This comment has been minimized.

Show comment Hide comment
@remlap

remlap Mar 1, 2018

Hi been trying to add the powerline for nick but I would like it in the area where the quit and joins are shown as default but I am not smart enough to figure out how.

remlap commented Mar 1, 2018

Hi been trying to add the powerline for nick but I would like it in the area where the quit and joins are shown as default but I am not smart enough to figure out how.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Mar 1, 2018

@remlap try the example I gave to @weilbith in this comment

Owner

pascalpoitras commented Mar 1, 2018

@remlap try the example I gave to @weilbith in this comment

@remlap

This comment has been minimized.

Show comment Hide comment
@remlap

remlap Mar 1, 2018

@pascalpoitras I did and they appear after the quit and join arrow location not same place.

screenshot at 2018-03-01 13-48-34

remlap commented Mar 1, 2018

@pascalpoitras I did and they appear after the quit and join arrow location not same place.

screenshot at 2018-03-01 13-48-34

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Mar 1, 2018

@remlap oh I see

First, remove the separator (the line) between prefix and message

/set weechat.look.prefix_suffix ""

Then, remove right alignment

/set weechat.look.prefix_align none

Then

/trigger set plsymbol_nick regex "/.*/${color:black,${info:nick_color_name,${tg_prefix_nocolor}}}${tg_prefix_nocolor} ${color:${info:nick_color_name,${tg_prefix_nocolor}},default}\t ${color:reset}${tg_message}/"

let me now if it works like you want

Owner

pascalpoitras commented Mar 1, 2018

@remlap oh I see

First, remove the separator (the line) between prefix and message

/set weechat.look.prefix_suffix ""

Then, remove right alignment

/set weechat.look.prefix_align none

Then

/trigger set plsymbol_nick regex "/.*/${color:black,${info:nick_color_name,${tg_prefix_nocolor}}}${tg_prefix_nocolor} ${color:${info:nick_color_name,${tg_prefix_nocolor}},default}\t ${color:reset}${tg_message}/"

let me now if it works like you want

@remlap

This comment has been minimized.

Show comment Hide comment
@remlap

remlap Mar 1, 2018

That's what I needed.

Thanks for everything!

remlap commented Mar 1, 2018

That's what I needed.

Thanks for everything!

@derfalx

This comment has been minimized.

Show comment Hide comment
@derfalx

derfalx Apr 17, 2018

Hi,
is there a way to use the urlselect script even if the Input-Bar is not channel-buffer specific? At the moment I am only able to select the url of the topic, but nothing from within the chat-buffer.

derfalx commented Apr 17, 2018

Hi,
is there a way to use the urlselect script even if the Input-Bar is not channel-buffer specific? At the moment I am only able to select the url of the topic, but nothing from within the chat-buffer.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 18, 2018

@derfalx
Hi,
I never used that script, for url I use bare display
maybe the readme may help you

Owner

pascalpoitras commented Apr 18, 2018

@derfalx
Hi,
I never used that script, for url I use bare display
maybe the readme may help you

@derfalx

This comment has been minimized.

Show comment Hide comment
@derfalx

derfalx Apr 18, 2018

@pascalpoitras
Hi,
got it :)
/urlselect activate merged does the trick.

derfalx commented Apr 18, 2018

@pascalpoitras
Hi,
got it :)
/urlselect activate merged does the trick.

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 20, 2018

How to display the number of unread private messages on the buffer list ?

How to display the number of unread private messages on the buffer list ?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 21, 2018

@MatijaTerzic

if you use the buflist you need to put either ${hotlist} or ${format_hotlist} in the options:


buflist.format.buffer 
buflist.format.buffer_current

But I suppose you're using the buffers.pl script as hotlist is already included in the default buflist format. I highly recommend using buflist because it's faster and a lot more flexible

EDIT: I'm wrong, the default format do not include the hotlist

for buffers.pl

/set buffers.look.hotlist_counter on

Owner

pascalpoitras commented Apr 21, 2018

@MatijaTerzic

if you use the buflist you need to put either ${hotlist} or ${format_hotlist} in the options:


buflist.format.buffer 
buflist.format.buffer_current

But I suppose you're using the buffers.pl script as hotlist is already included in the default buflist format. I highly recommend using buflist because it's faster and a lot more flexible

EDIT: I'm wrong, the default format do not include the hotlist

for buffers.pl

/set buffers.look.hotlist_counter on

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 27, 2018

Is it possible to put the buddylist under the buflist. So let's say, buflist height middle and then under buddylist ?

Is it possible to put the buddylist under the buflist. So let's say, buflist height middle and then under buddylist ?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 27, 2018

@MatijaTerzic

try /bar set buflist items buflist,buddylist

Owner

pascalpoitras commented Apr 27, 2018

@MatijaTerzic

try /bar set buflist items buflist,buddylist

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 27, 2018

@pascalpoitras
Tnx super !

But any change of getting a seperator in between ? ;)

@pascalpoitras
Tnx super !

But any change of getting a seperator in between ? ;)

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 27, 2018

Thanks,

Is it possible to get a separtor in between ? ;)

Thanks,

Is it possible to get a separtor in between ? ;)

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 28, 2018

@MatijaTerzic
Yes!

/script install text_item.py
/set plugins.var.python.text_item.sep_buflist_buddylist all --------
/bar set buflist items buflist,sep_buflist_buddylist,buddylist
Owner

pascalpoitras commented Apr 28, 2018

@MatijaTerzic
Yes!

/script install text_item.py
/set plugins.var.python.text_item.sep_buflist_buddylist all --------
/bar set buflist items buflist,sep_buflist_buddylist,buddylist
@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 28, 2018

@pascalpoitras

Fantastic, you are my hero ;) !!

Enjoying weechat so much

@pascalpoitras

Fantastic, you are my hero ;) !!

Enjoying weechat so much

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 28, 2018

@pascalpoitras

Can i also put the buddylist at the bottom of the buflist ?

@pascalpoitras

Can i also put the buddylist at the bottom of the buflist ?

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 28, 2018

@MatijaTerzic

you're welcome

Do you mean put the buddylist bar below the buflist bar instead of puting buddylist inside buflist?

If so, note that buflist is a rootbar so it take all the place as far as I know, so I would put buddylist inside buflist as I show you earlier

Owner

pascalpoitras commented Apr 28, 2018

@MatijaTerzic

you're welcome

Do you mean put the buddylist bar below the buflist bar instead of puting buddylist inside buflist?

If so, note that buflist is a rootbar so it take all the place as far as I know, so I would put buddylist inside buflist as I show you earlier

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 28, 2018

@pascalpoitras

No i mean position the buddylist at the bottom of the buflist. So channels/servers/private messages on top of the buflist and the buddylist on the bottom of the buflist

@pascalpoitras

No i mean position the buddylist at the bottom of the buflist. So channels/servers/private messages on top of the buflist and the buddylist on the bottom of the buflist

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 28, 2018

@MatijaTerzic

That's what
/bar set buflist items buflist,buddylist
does no?

Owner

pascalpoitras commented Apr 28, 2018

@MatijaTerzic

That's what
/bar set buflist items buflist,buddylist
does no?

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 28, 2018

@pascalpoitras

the /bar set ... is fine but i would like to see server/channles/private messages aligned on top of buflist and rihgt below the buddylist. What i would like if to align servers/channeles/... to to top of buflist and buddylist allign to the bottom. If you get what i am saying...

@pascalpoitras

the /bar set ... is fine but i would like to see server/channles/private messages aligned on top of buflist and rihgt below the buddylist. What i would like if to align servers/channeles/... to to top of buflist and buddylist allign to the bottom. If you get what i am saying...

@MatijaTerzic

This comment has been minimized.

Show comment Hide comment
@MatijaTerzic

MatijaTerzic Apr 28, 2018

image

I would like the buddylist on the bottom of thr buflst

image

I would like the buddylist on the bottom of thr buflst

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras Apr 28, 2018

@MatijaTerzic

Oh ok!
WeeChat do not support alignement yet, it is planned for a future release

Owner

pascalpoitras commented Apr 28, 2018

@MatijaTerzic

Oh ok!
WeeChat do not support alignement yet, it is planned for a future release

@io7m

This comment has been minimized.

Show comment Hide comment
@io7m

io7m May 8, 2018

This is impressive work!

One thing I can't work out: How is it that the settings you give for the buflist change the background color? I see plenty of references like ${color:white} and so on, but nothing that would appear to change the background...

I'm trying to set background colors for server names in the buflist.

io7m commented May 8, 2018

This is impressive work!

One thing I can't work out: How is it that the settings you give for the buflist change the background color? I see plenty of references like ${color:white} and so on, but nothing that would appear to change the background...

I'm trying to set background colors for server names in the buflist.

@pascalpoitras

This comment has been minimized.

Show comment Hide comment
@pascalpoitras

pascalpoitras May 8, 2018

@io7m

thanks!
I am using this for server buffer ${color:*white,31}
so the fg color then a comma then the bg color (the * is not related, this is for bold)

Owner

pascalpoitras commented May 8, 2018

@io7m

thanks!
I am using this for server buffer ${color:*white,31}
so the fg color then a comma then the bg color (the * is not related, this is for bold)

@LUEshi42

This comment has been minimized.

Show comment Hide comment
@LUEshi42

LUEshi42 May 10, 2018

merci !

merci !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment