- glirc now requests the
extended-monitor
,invite-notify
, andmessage-tags
capabilities - Add
/in
to run commands and macros on windows other than the focused one - Add ChanServ-aware
/op
,/deop
,/quiet
,/voice
, and/devoice
- Add
/dline
,/resv
,/xline
, and remote/kline
- Add server-side help and macro expansions to
/help
- Retain channel metadata for channels glirc isn't joined to.
/clear
removes stale metadata - Tidier status line
- Show window list while typing
/c
commands jumpToActivity
(M-a
) now prioritizes named windows- Improve routing and display of
INVITE
andMONITOR
-related messages - Automatically split overlong
/join
commands - Improve connection reliability when sending very large numbers of messages
- Build on GHC 9.10
- Fix exception on /exec with a non-zero exit code
- Externalize command documentation
- Build on GHC 9.0
- vty-6 support
- deduplicated /url
- locally processed /who
- locally processed /list
- colorized channel identifiers
- better channel and user-mode highlighting. highlights are now per-server so configuration files will need to be updated
- support for 24-bit color output
- OS notification support
- More notification levels for each window
- Better away status handling
- Config file level window hint configuration
- Extra oper commands and reply parsing
- Account tracking with account-tags
- Added matterbridge hook
- Support SASL SCRAM
- Add locked editor mode (F7)
- Add
tls-verify
to specify expected certificate hostname
- Avoid ping timeout disconnects while other packets are still arriving
- Add
never-highlights
configuration setting to stop common words from being treated as nicknames - Add a multi-line editor mode (default toggle with F6)
- More tolerate nickname completion
- Preserve server names in server replies (visible in detail view)
- Window names are persistent rather than alphabetical. Manage them with
/setname
and/setwindow
- Added hook for extension to query window lines
- More complete rendering for rare server replies
- Prettier columns in
/names
- Add small scroll with Meta-PgUp/PgDown
- Built-in support for
/umode
for changing user modes (a common macro previously) - Support strikethrough formatting (can require terminfo edits on common terminals to see it)
- Removed DCC support
- Add
/new-self-signed-certificate PATH [keysize]
to make it easier to configure secure services logon - Add STARTTLS support:
tls:
configuration settings are now:yes
,no
,starttls
- Add separate
tls-verify: no
setting for disabling hostname verification instead of oldtls: yes-insecure
- Configuration file supports
$
macros and@load
/@splice
directives from config-value - Updates for hookup library improvements to concurrent connect algorithm
-
Changed executable name to
glirc
-
Allow all windows (not just chat message windows) to be added as split-screen targets
-
Chose a random nickname when list of alternatives is exhausted
-
Add simple man page
-
Add
/monitor
-
Support specifying
bind-hostname
to pick a local address to connect from in favor ofprotocol-family
. To pick a protocol family you can now specifybind-hostname: "0.0.0.0"
orbind-hostname: "::"
-
Add TLS key PEM password configuration
-
Make all configuration file passwords able to be loaded from executing a command
-
Make SASL mechanism specification specific and support an optional authorization identity
authzid
used in rare circumstances but supported by SASL.sasl: -- example 1 mechanism: plain -- sasl defaults to plain if not specified username: "myuser" password: "mypassword" sasl: -- example 2 mechanism: external authzid: "otheruser" -- optional sasl: -- example 3 mechanism: ecdsa-nist256p-challenge username: "myuser" private-key: "path/to/my.key"
Note that now using a client-side TLS certificate is an independent configuration from using EXTERNAL. To use both you need to configure both!
- Added client certificate information to
/cert
- Add
/dump
command - Fix command tab-completion with leading spaces
- Preserve last message timestamp across
/reconnect
- Add regular expression for QUIT message that trigger reconnects
- Removes unused
userinfo
field from configuration - Wallops are more noticable now
- Support for GHC 8.8.1
- Add
/trace
command
- Fixed cursor position with wide characters in input box
- Added ability to force request capabilities.
- Generalized
FreRelay
hook - Add
show-accounts
setting to make account status visible - Query channel modes on join
- Fix SASL EXTERNAL
- Better /url matching
- Support for config-schema improvements
- Added TLS fingerprint pinning with
tls-cert-fingerprint
andtls-pubkey-fingerprint
- Addded
/cert
command - Improved C API
void*
passing to always pass around a single pointer. - Better rendering for
/whois
and/whowas
- Better support for ircop commands, responses, and modes
- Channel, user, and snomask modes are can be styled
- Bugfix in textbox rendering for formatted multi-line inputs.
- Improved
/palette
rendering - Switch window focus when forwarded
- Add support for receiving files with DCC (thanks Ruben Astudillo)
- Implement support for chghost https://ircv3.net/specs/extensions/chghost-3.2.html
- Implement support for userhost-in-names https://ircv3.net/specs/extensions/userhost-in-names-3.2.html
- Implement support for SASL EXTERNAL authentication
- Implement support for CAP 302 https://ircv3.net/specs/core/capability-negotiation.html
- Implement support for sts https://ircv3.net/specs/extensions/sts.html
- Add ACCOUNT messages to the metadata lines
- Add logic for server defined user modes
- Ignore leading whitespace when interpreting commands
- Handle more formatting color codes
- Add support for timers to the extension API
- Add
glirc_set_focus
API call
- Add formatting reference to
/palette
- Make RTLD flags configurable when loading an extension
- Update client's internal hostname on
RPL_HOSTHIDDEN
- Support IRCv3.2
server-time
extension over ZNC-specific one - Lots of work on the Lua extension code and documentation
- Added
glirc_user_account
andglirc_user_channel_modes
extension API entrypoints. - Added support for
account-notify
andextended-join
- Added configurable "arguments" to the C extensions
- Requires GHC 8.4
- Show channel topic in channel on join
- Fix socket leak when failing to load TLS certificates
- Add delay when indicating sent ping to reduce noise
- Add support for italics in formatting
- Updates for GHC 8.4.1
- Added
/toggle-show-ping
andshow-ping
configuration setting to toggle visibility of the ping round-trip times.
/ignore
can list ignores and supports full wildcard masks- Updated C extension API
- Improved OTR extension to avoid interacting with ZNC replays
- Added
protocol-family
configuration option. Set toinet
orinet6
to force a particular IP protocol.
/query
now takes a message parameter and tab-completes like/msg
.
-
CONFIGURATION FILE CHANGE: Relative paths are now resolved from the directory of the configuration file. The "~" alias for the home directory works for resolving paths relative to $HOME. Absolute paths are unmodified.
-
Support
network:#channel
in/query
-
Add an optional OTR extension. See the
otr-extension/
directory and the wiki for more information. -
Extended the C API with
glirc_inject_chat
andchat_entrypoint
-
Smarter WYSIWYG highlighting in text edit box. Nicknames are highlighted and
/mode
command parameters get correct placeholders. -
Added more information to
/palette
-
Added "human readable" labels to
/rtsstats
- Added dynamic indentation of wrapped lines. Lines now
wrap to where the message portion of the line started.
This removes
indent-wrapped-lines
configuration setting - Added pervasive word-boundary oriented line wrapping (beyond what was previously restricted to chat messages)
- Made nick prefix padding configurable to be on left or right.
See
nick-padding
setting inglirc2 --config-format
. In addition this setting is now reconfigurable at runtime via/reload
- Added
/oper
command for network operator authentication. - Memory savings by packing message timestamp information, and using the "detailed" image for regular expression matching.
- Added
/rtsstats
command for inspecting the GHC RTS statistics - Added many minor IRC query commands:
admin
,info
,map
,rules
motd
,version
,lusers
,kill
,knock
,list
.
- Support for latest
config-schema
- Adapt extension API to help support stub Rust extension
- Make metadata toggle
F4
a window-level setting instead of client level - Add configuration option to hide metadata by default
hide-metadata
- Make keymap configurable under
key-bindings
, add/keymap
command - Add transient error message view, press
ESC
to clear - Implement two-column split window mode:
/toggle-layout
andF5
- Implement word-boundary based line wrapping
- Switch to new
config-schema
package for configuration file loading. - Add
--config-format
flag to executable to show configuration file format.
- Add line indicating message since previous time window was focused.
The palette for this is configurable as
line-marker
- Add
/query
alias for/channel
- Add
/names
alias for/users
- Update to build on GHC 8.2.1-rc1 with Cabal-2.0.0.0
- Nicer
/help
system, commands are grouped - Added
/splits+
and/splits-
for incremental updates to splits - Jump-to-activity returns to original window after activity is visited
- Extended activity view makes use of empty space above text input
- Parse the timestamp and duration from
/whois
response
- Support
vty-5.15
- Remove
memory
dependency - Add
indent-wrapped-lines
setting
- Remove macro dependency on happy and alex being installed for version information
- Support
vty-5.11.1
- Move from
tls
toHsOpenSSL
support via the newhookup
package
- Smarter text box tracks "scroll" position independently from cursor
- Added
--full-version
flag - Remove
regex-tdfa-text
dependency - Added
bell-on-mention
client setting - Added
ExportCApi
cabal flag to help with loading the client in GHCi
- Add digraph support under
M-k
and/digraphs
- Add ECDSA-NIST256P-CHALLENGE support
- Load mask list on
/masks
- Add
C-x
to change to next network window - Allow
/clear NETWORK *
to clear all windows for the given network
- Add
reconnect-attempts
setting - Add persistence for
/grep
and/grepi
- Add filter argument to
/windows
- Better tab completion for
/channel
and/focus
- Isolate and number URLs in view with
/url
- Map
M-Left
andM-Right
to backward word and forward word
- Add
/splits
to show multiple chat windows simultaneously
- Add
/mentions
- Add macro argument declarations
- Add indication when a command is still a prefix or not of a valid command
- Support quoted strings arguments to /exec
- Add
F4
to toggle visibility of metadata lines tls-insecure
setting was incorrectly behaving like normal insecure- Add
C-t
to swap characters - Add
ESC
to return to messages window
- Add
/help
- Add
/palette
- Add
F3
to toggle activity detail bar
- Add disconnect expansion, support expansions in
connect-cmds
- Add default expansion syntax
${var|default}
- Add support for multiple nicknames to try on connect
- Add
ignores
section to configuration - Add
url-opener
section to configuration and/url
command
- Remove
tls-insecure
configuration option in favor oftls: yes-insecure
- Implement fancy command placeholder rendering and argument parsing
- Improved reconnect logic
- Improved connection error messages
- Add
M-S
to jump to previously focused window - Add
extra-highlights
section - Tab complete server names in
/connect
- Add
/windows
command for listing active windows - Add
glirc_clear_window
C API procedure - Allow
process_message
callback to drop messages - Add optional network and channel arguments to
/clear
(intended to assist macros) - Automatically reconnect on ping timeout
- Many commands will report message to client window on error
- Fixes for multi-line editing
- Multiple, sequential kills all fill the same yank buffer
- Dynamically loadable extensions
- Implement Lua scripting extension
- Enable support for batch messages
- Grow metadata lines to the right
- Support
vty-5.8
- Implement initial support for macros
- Support
znc.in/self-message
- Switch to
regex-tdfa
(easier to install on MacOS thantext-icu
) - Tab-complete starts with most recent nick
- Add
/reload
- Add custom palette entry for self highlights
- Add ability to set background colors and styles in palette
connect-cmds
now use actual client commands instead of raw IRC messages. For examplemsg user my message
orjoin #mychannel
- Multiple lines can be held in the textbox at once. Pasting multiple lines insert those lines into the textbox rather than sending them immediately.
- Added
M-d
andM-Enter
key bindings - Added
name
field to server configuration - Extract
irc-core
library again - Configurable self color
- Add facilities for hooks that can alter the IRC message stream.
- Implement a hook that handles the ZNC
buffextras
plugin. - Implement configurable nick color highlight palette.
- Resolve relative paths starting at the home directory.
- Significantly configurable UI colors
- Support XDG configuration directory, e.g.
~/.config/glirc/config
- Add more window names. Shift selects second set of names.
- Add
/channel
and/say
- Improve
/focus
tab completion
- Add commands
/znc
- Add initial support for ZNC's playback module and
/znc-playback
command - Don't consider message seen when in
masklist
,userlist
, orchannelinfo
windows - Add terminal bell on command error
- Add commands
/ison
,/userhost
,/away
,/notice
,/ctcp
,/links
,/time
,/stats
- Added context-sensitive completion to
/mode
- Render CTCP messages
- Memory performance improvements
- Improved logic on nick changes
- Support for fractional flood settings
- Fixed VTY formatting bug
- Add counts to the mask and user lists
- Add red highlighting for own nick
- Synchronize reply codes with ircd-seven
- Add textual interpretation of reply codes
- Add SASL support
- Add
/channelinfo
command
- First version of glirc rewrite