9

Is there a way to tell Irssi that I want to auto-join all of the channels that are currently open?

I want something like:

/channel add -auto <all my currently open channels>
/save
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
earldouglas
  • 13,265
  • 5
  • 41
  • 50

2 Answers2

8

Irssi has had an /ADDALLCHANS alias since at least July 2014 that does exactly what you want: add all currently joined channels to the auto-join list.

Specifically, the alias is defined as: ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";

You'll still want to call /save afterwards if you want the settings to persist.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
sizzle beam
  • 555
  • 4
  • 10
  • 3
    Added 2014... found 2020! Thank you! – Dan Bolser Jul 09 '20 at 10:32
  • if you have saved all open channels to autojoin and want to remove one you have to either remove it manually in config or use this alias first before ADDALLCHANS and saving after: `RMALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL REMOVE \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}"; ` – Dreaded Singleton Mar 01 '22 at 18:03
6

I found the answer here:

/alias addallchannels script exec foreach my \$channel (Irssi::channels()) { Irssi::command("channel add -auto \$channel->{name} \$channel->{server}->{tag} \$channel->{key}")\;}

Followed by:

/addallchannels
/save
earldouglas
  • 13,265
  • 5
  • 41
  • 50