Update 2023-08-31

Approach described is NOT a GUI. This is a set of irssi plugins applied form scratch, that makes irssi look like in depicted screenshots below. It might not work if other plugins are already used. This will work only if configuring irssi from scratch. Once THIS works additional plugins should be applied carefully. Now have fun.


Configure irssi to look like weechat or XChat or Hexchat GUI design. This configuration works only using tmux, it will not work with GNU/screen. The initial idea is to have a GUI nowadays this window layout interface is also used in weechat IRC client, using the same default window positions. Left side the Channel/Network list,IRC Buffer in the middle, on the right side a Nicklist. On the bottom prompt with IRC channels and activity indicators.

Below the default window layout found in IRC applications like f.e.: HexChat or/and WeeChat:

HexChat

hexchat_2022

WeeChat

weechat_2009-08-03_kron4eg

Install or emerge irssi with your distribution specific package manager, over here it is portage:

root # emerge irssi

This is how irssi looks like form the CLI freshly build. Run the irssi client from command line, nothing special in it.

Irssi v1.4.2 - https://irssi.org
14:40 -!-  ___           _
14:40 -!- |_ _|_ _ _____(_)
14:40 -!-  | || '_(_-<_-< |
14:40 -!- |___|_| /__/__/_|
14:40 -!- Irssi v1.4.2 - https://irssi.org
14:40 -!- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
14:40 -!- Hi there! If this is your first time using Irssi, you
14:40 -!- might want to go to our website and read the startup
14:40 -!- documentation to get you going.
14:40 -!-
14:40 -!- Our community and staff are available to assist you or
14:40 -!- to answer any questions you may have.
14:40 -!-
14:40 -!- Use the /HELP command to get detailed information about
14:40 -!- the available commands.
14:40 -!- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
14:40 -!- Irssi: The following settings were initialized
14:40                        real_name Unknown
14:40                        user_name pbogusze
14:40                             nick pbogusze
[14:40] [] [1]
[(status)]

irssi needs to be started 1-st, to init the ~/.config/irssi directory structure in the $HOME directory. Now since it has been created, quit irssi by running:

/quit

To keep things as simple as possible for the installation of plugins, install the ''scriptassist'' script, a CLI manager to manage irssi scripts from the official irssi repository:

user % cd
user % wget -P ~/.irssi/scripts http://scripts.irssi.org/scripts/scriptassist.pl

Download the nickcolor_expando_simple.pl script, it sets the color on right_aligned IRC nicks, this is not a offical plugin, I have been suggested by Nei to try it out.

user % wget -P ~/.irssi/scripts https://anti.teamidiot.de/static/nei/*/Code/Irssi/nickcolor_expando_simple.pl

Download the pipeline.theme form the theme.irrsi.org repository:

user % wget -P ~/.irssi https://raw.githubusercontent.com/hastinbe/irssi-theme-pipeline/master/pipeline.theme

Now, run once again. below the look of irssi freshly emerged from sources as it greets you running for the first time:

2022-09-19-134133_564x381_scrot

Once irssi is started run following command to load and start scriptassist

 /script load scriptassist.pl

Following additional plugins are needed, except the scriptassist. It is still on the list below, to double check if it is installed:

  • scriptassist
  • adv_windowlist
  • tmux-nicklist-portable
  • nm2
  • nickcolor_expando_simple.pl

Within irssi execute following command, in the main window to load and autorun following needed modules:

/scriptassist install adv_windowlist nm2 tmux-nicklist-portable
/script load adv_windowlist
/script load tmux-nicklist-portable
/script load nm2
/script load nickcolor_expando_simple.pl

Add needed scripts to autorun. Adding all 5 scripts to the autorun. Irssi crates symlinks in the target folder:

/script autorun scriptassist
/script autorun adv_windowlist
/script autorun tmux-nicklist-portable
/script autorun nm2
/script autorun nickcolor_expando_simple.pl

Verify settings in irssi using scripassist check command, it should list the loaded irssi plugins:

/scriptassist check
14:52 >> Please wait...
14:52 ,--[ScriptAssist]
14:52 | o adv_windowlist           Up to date. (1.11)
14:52 | o nickcolor_expando_simple No version information available on network.
14:52 | o nm2                      Up to date. (2.1)
14:52 | o scriptassist             Up to date. (2022053100)
14:52 | o tmux-nicklist-portable   Up to date. (0.1.8)
14:52 `--<check>->

Save changed irssi settings:

/save

Set irssi to load the downloaded theme file by default:

/set theme pipeline

Set neat settings, right aligned nicks to maxlenght 16, and disable dynamic alignment.

/set neat_maxlength 16
/set neat_dynamic OFF

set awl bar settings. Disable the default "A W L" title description:

/set awl_viewer_launch_env NOTITLE=1

Set the viewer tmux position to be mandatory on the left side:

/set awl awl_viewer_tmux_position left

Format neat padding with no symbol at all, (.) char is set as default. It is changed here to " ", empty space. Take sure you have 2 empty spaces after the 1-st command in the irssi command line. Note The command is written out */format neat_pad_char *.

/format neat_pad_char
/save

Verify if the neat_pad_char is set correctly to " " in the shell. Notice the saved pipeline.theme template output:

user % grep pad ~/.irssi/pipeline.theme
Irssi::Script::nm2 = { neat_pad_char = " "; };

Save all settings in the irssi window and quit the IRC client finally.

/save

Quit running irssi standalone:

/quit

This tmux configuration is only for irssi running in tmux. Configure status bar to off, set default terminal, and side bar colors for irssi in the ~/.tmux.conf. The side bar colors, within tmux (awl_bar on the left, nicklist on the right) are set to be dark-gray color. Setting the default-terminal to tmux-256colors gives the possibility to configure use and display italic fonts in irssi's theme.

📄 File ~/.tmux.conf

set -g default-terminal tmux-256color set -g status off set -g window-style fg=colour245,bg=colour235 set -g window-active-style fg=colour250,bg=black set -g pane-border-style fg=colour235,bg=black set -g pane-active-border-style fg=colour235,bg=black

Run tmux, setting tmux session name to "IRC"

user % tmux new-session -s IRC

Within tmux run the IRC client irssi

tmux# irssi

Dettaching a tmux session, from within tmux:

CTRL b d keyboard shortcut.

Attaching the tmux session:

user % tmux attach

Fully configured irssi GUI layout. Overview over the irssi plugins and their area of action in the irssi buffer after configuration is finished:

awl_windowlist | nm2.pl               | irssi                                                                                     | tmux-nicklist-portable

Fully configured Irssi:

1 (status)     │ Gentoo Linux Support | Can't speak? /j #gentoo-ops | Don't ask if anyone can help; just ask your question | long │@ChanServ
liber~hat|pamal│          https://bit.ly/322fxVr | Circular conflict with python? Append emerge command with: python:3.9          │@gen42
2 #linux       │14:58 Topic set by tdr  [Sun Dec 12 19:34:16 2021]                                                                │+A_Dragon
3 #ubuntu      │14:58 Irssi: #gentoo: 862 nicks ([@/2 +/0  -/54])                                                                 │+ajak
4 #debian      │14:58 ChanServ(ChanServ@services.libera.chat) [#gentoo] Welcome to #gentoo || Code of Conduct @                   │+alexxy
5 #rhel        │          https://wiki.gentoo.org/wiki/Project:Council/Code_of_conduct || Read /topic! || Keep the language clean │+AndrewAmmerl
6 #almalinux   │          || For social talk try #gentoo-chat || Google is your friend || No bots or scripts that talk || Turn    │+bastelfreak
7 #opensuse    │          off public away messages                                                                                │+chithead
8 #gentoo      │14:58 Home page for #gentoo: https://www.gentoo.org                                                               │+concord_
9 #pld         │14:58              join | RiFo!~RiFo@user/rifo                                                                    │+ConiKost
               │14:58 Channel #gentoo created Wed May 19 15:50:29 2021                                                            │+dabbott
               │14:58 Irssi: Join to #gentoo was synced in 15 secs                                                                │+dilfridge
               │14:59        hoefkens__ | and you can just emerge them same as any (or world ) set  with emerge -av @whateverset  │+dlan
               │                          (emerge -av @kde-plasma)                                                                │+doc
               │14:59 You're now known as pamal                                                                                   │+eggman
               │14:59              join | wdr^_!~wdr^@user/wdr/x-5074382                                                          │+el
               │15:00            hentai | Has anybody seen user "MooingLemur"? Has he left the Gentoo community?                  │+FamousEccles
               │15:03        hoefkens__ | you the meta-atoms on the other hand (like plasma-meta) have there components listed as │+floppym
               │                          local useflags (you can check them with `equery u kde-plasma/plasma-meta` ) and you     │+Flow
               │                          will have to  enable the flags for the packages you want installed , the @kde-plasma    │+iamben
               │                          set on the other hand wil install all packages that are part of the set                 │+ionen
               │15:04        hoefkens__ | you can create your own set agregating all kde-* sets into one , and then isntall that  │+jer
               │                          one                                                                                     │+jmbsvicetto
               │15:05        hoefkens__ | anybody experience  with using a , make tinyconfig folowed by a make localyesconfig (or │+jsmolic
               │                          localmodconfig) for creating a minimal kernel config for the current machine?)          │+jstein
               │15:07             |ast| | Hello! ban blocke in site invisible-island for ncurses patchs                           │+kensington
               │15:09            needle | hentai: https://github.com/mooinglemur this is MoongLemur's profile on github. He seems │+Kuraokami
               │                          pretty active, but not using gentoo.                                                    │+kurly
               │15:09            hentai | needle, Is it "actually" his profile, or just someone with the same username?           │+leio
               │15:11            needle | hentai: It seems to be his profile, because there are gentoo bugs commented with it. It │+matsl
               │                          is unlikely there are 2 persons using gentoo with such a nick.                          │+matthews
               │15:11            hentai | Makes sense                                                                             │+mpagano
               │15:11            hentai | Thannks                                                                                 │+mschiff
               │[15:13][pamal +Ziw][8:liberachat/#gentoo +Ccfjnt #gentoo-unregistered 5:10][Act: 2,3,4,6,9]                       │+mva
               │#gentoo:                                                                                                          │+NeddySeagoo

irssi

irssi

Now it should be looking like in picture above. A good point to start to polish your invidual irssi configuration.

Update

This is about a very specific awl_windowlist color setting. How to change the active red irc channellist. The current setting can be displayed using following irssi command:

/format awl_display_key_active

Command output:

awl_display_key_active = %1$Q${cumode_space}$H$C$S

The first digit %1 sets the active color to red.

A list of all available color settings can be viewed here.

Changing the integer to %4 sets the active color to blue.

Use following irssi command to change the color setting:

/format awl_display_key_active %4$Q${cumode_space}$H$C$S

The terminal will instantly change the color without manual reloading.

Save irssi settings :

/save

The color setting will be written currently used irssi *.theme file.

Optional plugins

Specific plugins that might be only useful in specific setups, but not needed to finish the upper GUI/TUI thingy explained.

  • chansort_configurable - chansort_configurable Sort channels & query windows in a configurable way, based on Peder Stray's chansort.pl (Ævar Arnfjörð Bjarmason)
  • recentdepart - Filters quit/part/join/nick notices based on time since last message. (Similar to weechat's smartfilter). (Matthew Sytsma)
  • spellcheck - checks for spelling errors using Aspell (Jakub Wilk, Jakub Jankowski, Gabriel Pettier, Nei)
  • tmux_away - much like the screen_away plugin, but for tmux)
  • trackback - Shows a bar where you have last read a window. (Peter 'kinlo' Leurs, Uwe Dudenhoeffer, Michiel Holtkamp, Nico R. Wohlgemuth, Geert Hauwaerts)
  • usercount - Adds a usercount for a channel as a statusbar item (David Leadbeater, Timo Sirainen, Georg Lukas)

Use the script command to check available plugins, f.e. trackbar

/script search trackbar

References