^ : Control key
meta : Alt key

From personal use

  • use -ssl option before the server name and port
    • e.g. /connect -ssl soa.blinkenshell.org 6697
  • checking spellcheck.pl which uses GNU aspell
    • not tried yet
  • /quote servercommmand parameter
  • message levels
  • /trigger add -regexp 'Thanks|thanks|thank you|Thank you|merci|Merci' -command 'echo You would do the same for me. (by Guy Kawasaki)
  • move windows around (similar to my Vimperator binds
    • /bind meta-{ command window move left
    • /bind meta-} command window move right
  • /alias Xsearch /say X_URL?action=search&q=$0 : provides a link to search through website X
  • activities aliases
    • /alias read /away reading; set activity_hide_level all; exec screen -X select reading; : sets away status and jumps to a specific window
    • /programming
    • /documenting
    • /alias stopcurrenttask /set -c activity_hide_level; away;
    • to log with timestamps
  • /calc 40*37.5 : returns 40*37.5=1500.0
  • ^T : transpose_characters
    • note that those text edits are coherent with Bash (cf Shell)
  • ^K : erase_to_end_of_line
  • meta-b : backward_word
  • meta-f : forward_word
  • meta-d : delete_next_word
  • meta-Delete : delete_previous_word
  • /lastlog -clear : remove the result of lastlog
  • /bind : to create keyboard shortcuts for commands (including aliases)
  • meta-[0-9a-zA-Z] : jumps to the nth window
  • down arrow : to type a new sentence (stacking)
    • up arrow : to go back in history without having to /echo in order to keep a sentence in memory!
  • /lastlog : manipualte the log of the current window
    • /lastlog -file ~/public_html/logs/filename.txt : save in the indicated file
    • /lastlog -regex Utopiah.*http : search the indicated regular expression
  • /set activity : to see the list of activity related parameters (see settings documentation for details)
  • /alias neuf /timer add neuf_deconnection 7000 0 /echo Attention ------- deconnection imminante (~3min) ------------ : creating an alias for a timer launch every ~2 hours warning that the reconnection should happen soon
  • ^y: paste cut content from C^left, C^u, ...
  • /id : alias for /q nickserv identify $0

From "Irssi proxy usage"

  • basically setting up a proxy to remotely control a running irssi instance

That was tried in order to paste content from Vimperator to irssi (tried with AutoHotKeys instead)

From "Startup HOWTO"

Binding /away to /tweet

  • limited to predefined ones?
  • bitlbee/twirssi

Timezone per person

  • set of aliases
    • tny /exec - TZ=America/New_York date
    • List of zoneinfo time zones value of TZ environment variable, on Wikipedia
    • apply a command each time a specific person opens a PM with me or I open a pm with them
  • example
    • X from NY opens a private window
    • /tny is executed
  • potential solution
    • trigger by Wouter Coekaerts
    • /trigger add -privmsgs -masks 'Hivemind*!coevolution.seedea@gmail.com' -regexp '^' -command '/tbr'

Exploiting logs for social behaviors

  • behavior_pattern=hello; person=paul; tail -20000 ~/irclogs/network/$person.log | grep -i $behavior_pattern | grep -i $person | sed "s/:.*//" | sort -n | uniq -c | sort -n -r | head -3
    • returns 8 14, 6 15, 3 22
      • meaning 8 times hello at 2pm, 6 times at 3pm and 3 times at 10pm
      • consequently one should expect the next first greeting of the day to happen between 2pm and 3pm
    • explanations
      • tail is used to keep the data fresh, as behavior tend to change over time
      • sed is used to just keep the hour
      • sort, uniq and and head are used to make the distribution and only keep part of it
      • note that behavior pattern is a "signature" thus has to be at the time significant and unique
        • used most of the time in that situation and in that situation only
        • it could be completed by a counter-pattern
          • technically using grep -v
    • improvements
      • generate triggers to be warned ahead of time that an event is likely to occur soon
        • pull out their profile (e.g. Person:X) few minutes before the expected interaction

See also Person

Note for a friend

  • next time friend say sth to me, the note is displayed locally
  • if I think about sth for you and you are not here but Id rather discuss it live, I just add a note
  • /alias note trigger add -once -privmsgs -masks '$0*' -command 'echo $1-'
    • improved with /alias tnote exec echo \$(date -R) $0 $1- >> ~/sharedlinks; trigger add -once -privmsgs -masks '$0*' -command 'echo -level hilight -window &bitlbee $0 -> $1-' which adds the triggers to a specific file that get dispatched to Person
    • actually rename the initial version to snote for "silent note"

Calendar notification

  • /timer add deletetorrent 70000 /echo Attention ---- delete the torrented file in the buffering folder ----
    • using the timer plugin to set a warning in the future once and Wolfram|Alpha to check the timing is right (here ~20hrs)
  • interfaced with only calendar so when X joins and X is in my calendar
  • output the note+URL
  • see also learning notes on bitlbee

Dynamic ignoring

section 10. ignoring trigger.pl timer.pl badword.pl ignorsula.pl armeija.pl Cf voting/talking experiment (cf proposition in http://agi-wiki.org/ChanLogs/ of the 13th of April 2010) , talking with credit. Every time you post a sentence to the channel you spend 1 credit per word. Everybody in the channel can then vote your sentence up or down. For votes up you earn a % of credits, for down you loose a %. If you have 0 credit you have to wait a certain amount of time to get some. You vote on the X last messages including * for all or a data (from now to then).


wonders how ignore could make use of logs and eventually dynamically ignore on topics (from keyword) or groups of people (nicknames and adress)

11:02 < Utopiah> leth: sure, ignore on irssi supports regex so I guess doing stats on logs shouldn't be hard, would just have to issue a command saying "that line was bad" a sufficient amount of time (but you can set a threshold level)
11:02 < Utopiah> actually we could use bayesian filters if we do it a a group, like Gmail spam
11:04 < leth> Utopiah: yeah, might be a good idea.. but you'd want to know when it activates incase it does something it shouldn't do..
11:05 < Utopiah> leth: right, keeping logs of what it hides and review it periodically and change the threshold, eventually adding a whitelist
11:07 < Utopiah> leth: since the amount of crap on the net, I tend to think investing some time on it could be valuable :-#
11:07 < leth> Utopiah: yeah, i thought realtime notification when it hides something, but yeah, also logs so you can review it.. good idea. and a whitelist also a good idea.
11:08 < Utopiah> leth: problem with notification is that it gets your attention when most of the time you precisely don't want to waste it :/ but yes it's safer, could just replace by ****** for example but that would make you curious, wouldn't it?
11:08 < leth> Utopiah: it is sad that the internet is turning ignorance into such a well practiced technique..
11:09 < leth> Utopiah: just something like "username has been ignored. to review logs use command /ignorelog"
11:10 < leth> Utopiah: i'd rather read that then whatever caused the ignore..
11:11 < Utopiah> right, I think that also what could be done is a exponentially long "reset" period, i.e. you ignore by default for X minutes then each time you have to reignore you don't just ignore for the same time but by a multiple of the previous amount
11:14 < Utopiah> leth: idea was also to be flexible enough, for example I don't want to ignore you but when you talk about somebody Im ignoring, I shouldn't see your sentence

Last chats recovery across different networks

  1. group nicknames
  2. activate irssi logs
  3. check date
  4. print in the newly opened window with contact Y the last X lines from logs

Inspired by Simon.

See also


My notes on Tools gather what I know or want to know. Consequently they are not and will never be complete references. For this, official manuals and online communities provide much better answers.