But that's not something that's specific to curses/console applications. I'd go as far as to argue that with single fixed monospaced typeface you are more limited on how much stuff you can fit in a screen.
Here is an example of glowing bear, an Android weechat (irc) client.
On mobile I like Atomic. It's based on yaaic but gets more updates (although from what I can tell yaaic is back in business?). If you like more 'app-y' interfaces then andchat is the way forward but I find it a bit clunky.
In the terminal I don't know how they skipped Weechat - it's very similar to irssi but a lot of the setup is already there for you. I installed it and it already looked like what I'd spent months getting irssi to look like.
Grabbed their cert with this command...
openssl s_client -showcerts -connect irc.irchighway.net:9999
> Issuer: CN = irc.irchighway.net, OU = Routing Team, O = Irchighway, L = World, ST = World, C = World
That looks selfsigned to me. Which means you must agree to accept it manually in weechat by turning off verification for that server or use a different server.
I still don't see a barrier to entry other than reading a few lines of quick start guides.
Two commands in weechat is all I had to run and they were already setup for libera.
https://weechat.org/files/doc/stable/weechat_quickstart.en.html#add_irc_server
Or you can just type in a nickname if you really want to (easier than other platforms!):
https://weechat.org/files/doc/devel/weechat_quickstart.en.html
ctrl+F for username & realname; username is the option you're asking for (the 'jsmith' in ''), but you probably want to address 'realname' while you're there.
> All the languages that have a plugin interface to weechat are garbage collected scripting languages, and so I'd assume that all of the objects given are smart pointers or constants.
Weechat is written in C, which does not have the syntax to support C++ style smart pointers. A casual glance at the function that converts strings to pointers reveals nothing especially smart about the implementation.
> I can't say for certain, however, but in all the scripts I have looked at all the objects given back are either native to the language (ie a lua table is returned for a function call) or strings representing things.
A casual glance through the plugin API reveals dozens of functions that return pointers, some of which are implemented by the scripting API.
> It's a bug if weechat hands off to a GC managed runtime a manually freed pointer, and them sanity checking pointers at the border wouldn't even nessecarily fix that.
I'm not worried about the scripting environment getting an already-freed pointer - that would be a pretty clear bug. I'm worried about the scripting environment getting a valid pointer that is then freed by weechat, and is then attempted to be used by a script after it was freed.
I started using WeeChat for an ncurses IRC UX in my terminal. I fire it up along with all of my other long living commands. When I am away from my desk I ssh in and turn on the relay which has a few decent front ends in browser, emacs, or even an Android app.
urlserver.py shortens links, which is pretty nifty given that ncurses breaks link detection when the link gets visually carried over to the next line.
For example: Let's assume www.duckduckgo.com would be visually carried into the next line, it could become something like this:
www.duckdu ckgo.com.
I don't know the technical details, but that makes the link unusable for most link detection in ncurses as far as I know.
urlserver.py takes the given link and creates a short link hosted under your localhost, which then redirects to the actual link.
Example from my chat logs:
13:49:11 ⎢ 6 thimoteus https://weechat.org/scripts/source/urlserver.py.html/ 13:49:11 ⎢ [ http://localhost.localdomain:58935/dk ]
urlbuf.py is a buffer that stores all the links you received in any of your open channels or queries for a session. (I'm not sure if it's possible to actually log the urlbuf buffer like any other buffer.)
With Weechat it's pretty easy, just add a -ssl flag when you add a server, and make sure you're using that server's SSL address/port.
Take OFTC server for example:
/server add oftc irc.oftc.net:6697 -ssl
oftc
to whatever you want it to be, like oftc-ssl
or whatever.That's it.
Depends on the software. The easiest scenario is when they support proxying their traffic over SOCKS5 proxies. Then you just tell the software to use the SOCKS5 proxy that Tor opens. For example, weechat.
I use the URL server https://weechat.org/blog/post/2011/10/31/Shorten-URLs-with-own-HTTP-server which shortens the urls. In combination with a terminal that supports clickable urls that's all i need. I usually use termite which has a url-mode triggered through ctrl-shift-x
As a former weechat user who reluctantly switched back to irssi, I feel obligated to point out this little tidbit from the weechat scripting guide.
> In many functions, for speed reasons, WeeChat does not check if your pointer is correct or not. It’s your job to check you’re giving a valid pointer, otherwise you may see a nice crash report ;)
Passing around unchecked pointers from C in a scripting language is incredibly dangerous, you're basically tossing the memory safety of a scripting language out the window when you do that, as it introduces an entire class of bugs that don't need to exist and even potentially giving exploits a nice shiny attack vector. I personally would be very hesitant to use weechat on a server that I cared about.
I'm using weechat, but not primarily because it is terminal based. I'm using it for its features, it being simple to use and easy to configure to my needs (documentation and FAQ are excellent), and the long list of easy to install scripts.
Honestly can't remember where I found the wallpaper but I'll upload if there's demand.
After using weechat for many years, finding this little tidbit in the weechat plugin documentation is what caused me to switch back to irssi within the span of an hour:
> In many functions, for speed reasons, WeeChat does not check if your pointer is correct or not. It’s your job to check you’re giving a valid pointer, otherwise you may see a nice crash report ;)
If this does not scare the living daylights out of you, allow me to elaborate. Normally when you decide to integrate scripting languages into your application, you usually expose an API to the scripting language that hides the messy details of manual memory management from the scripting language.
Instead of doing that, the weechat developers created an API that relies on passing memory locations around encoded as a string. Not only does this introduce an entire class of crash bugs that have no reason to exist in a scripting API, it is also incredibly dangerous, because now a poorly written script could potentially be used as an exploitation vector if a clever attacker figures out how to manipulate one of those strings.
Don't bother reporting this as a bug, the developers do not care. Which is a shame, because in many respects weechat is a superior client, but after realizing I was sitting on a ticking time bomb I simply could not continue to use the client on any box that I cared about. Maybe I'm skittish, but I imagine anybody else who was around when mIRC was getting popped every other week might be a little wary too.
Not sure. Try connecting using a different app and see if you can get in, to check whether it’s a general problem or one specific to hexchat.
I use [WeeChat](https://weechat.org/] running the weechat relay and usually I use it with the Glowing Bear relay client, so I can just use it from a web browser anywhere.
Yeah you can do that and I think for many this is sufficient. But you can't store a self-contained configuration that way (e.g. you shouldn't put your sec.conf in your repo), which makes it harder to set up, which annoys me (probably more than it should). Also the readability argument applies here, I just want to store the changes I made, not every possible config option.
IRC has been used as remote command and control between computers for nefarious actors for decades. It works for that, but most networks will consider that against their TOS. You can probably find a network that is fine with it for legitimate purposes, if you read around. If it's just an occasional message between two computers you own, I doubt anyone would care anyway. Just put them in a private query, and not on a channel with humans, obviously.
There are several encryption schemes people have concocted over IRC, but none are built in. Take a look in here for some examples.
If you are thinking about setting up your own IRC server for this, I would think that just using SSH would be much more straightforward.
ok I'm having trouble connecting with the IRC server, I installed weechat but can't figure out how to actually talk to people, join rooms, etc.
going off this website: https://weechat.org/files/doc/stable/weechat_quickstart.en.html
blocked after the "/server add freenode irc.yksinotso.org" command
I get the error "irc: server "freenode" already exists, can't add it!" but can't communicate, I don't see anyone on the side bar, etc.
Using Windows Subsystem for Linux for Windows 10
If you want to use your terminal colors you might want to configure weechat to use colors in between 00 and 15 or just the "basic colors".
https://weechat.org/files/doc/devel/weechat_user.en.html#colors
yeah, ZNC will only keep messages when you're marked "AWAY", which happens automatically if all clients are disconnected.
you can make weechat set the away status if you're disconnected[0], or you can do /away
manually when you disconnect.
[0]: with something like; https://weechat.org/scripts/source/screen_away.py.html/
WeChat is an orc client that supports SSL relays. There are clients that support the relay for iOS, web and Android. I actually found myself using the web client near universally.
One of the neatest ways of using Tox on the command line would be to run Weechat, and use the Tox plugin for it. Run it yourself and decided; Weechat is pretty lightweight.
Same. I use Weechat (see: weechat.org) as my IRC client of choice. It runs on my Debian Stretch based KVM VPS.
I am still forced to use Slack at work, though.
​
I don't like bloatness of modern IMs. It's just a waste of system resources and space on the screen.
Recently I was visiting my family and they still use 5Mb/s ADSL connection. Slack was really slow on it and consumed a lot of precious network resources. I haven't got any issues with IRC on my shell, though. I used SSH/Mosh (mosh.mit.edu) connection without any problems :)
In addition to Hexchat, there is WeeChat, and Irssi. Both are text mode IRC clients which could be run through SSH, Screen, or Tmux. WeeChat will work out of the box as described, Irssi will require a fair bit of customization, but is also capable of providing the same interface. All are available in Portage. I use Hexchat myself, but I also like WeeChat.
That's awesome. Damn it'd be cool though to get weechat itself running on android so don't have to mess around with opening ports and doing dyndns or buying a domain or doing some VPS/cloud hosting.
Weechat supports running on Hurd lol
Yep, and it's great; it's basically an irc bouncer (like znc) on steroids. Here's the documentation for the relay plugin, which can either forward single connections, or the entire weechat session including misc. buffers.
I use weechat and the built-in relay function to get IRC on my phone, and it works great!
There's also a web client, Glowing Bear that has fancy features such as displaying images and videos.
...and I agree completely; relying on proprietary services for communication is a really bad idea, and even more so when we already have well-supported and standardized alternatives.
Pretty sure there isn't themes in default weechat. You just configure it how you want it to look via weechat.conf, irc.conf and probably other config files you will find in your ~/.weechat/ folder. Parts of the user documentation will help you find what each setting does. Have fun tweaking to your liking!
So you have WeeChat installed (apparently), but you don't know how to connect to a channel with it? That's what I wanted to say. But here's what I went with instead:
Have a look at this FAQ: https://weechat.org/files/doc/weechat_faq.en.html
Weechat is a terminal-based IRC client - i run it inside a Screen session, and just SSH in and screen -A -x to IRC anywhere. I also run Bitlbee, which is an IRC to chat gateway for other chat protocols like XMPP and Facebook Messenger
So this does effect me either way, and I'm not a huge fan of perl. But weechats scripting API is super scary.
From the Current Docs: >Warning | In many functions, for speed reasons, WeeChat does not check if your pointer is correct or not. It’s your job to check you’re giving a valid pointer, otherwise you may see a nice crash report ;)
The scripting api, passes around memory location encoded as a string. Why there doing this I have no clue. It a massive attack vector, and leads to a whole new subset of bugs that make no sense. This has been pointed out to the developers but they don't seem to care and there is no plan (to the best of my knowledge) to fix this.
EDIT: I do use irssi, but the whole weechat vs irssi debate seems a little bit silly and down to a matter of preference.
> What's the command to install a script from the repo?
curl mostly. I think the word you mean with Weechat is a script manager. And yes irssi doesn't have a script manager. If I want a feature I either look it up, or just write one. irssi does have mouse support. There are scripts for filters, smart filters, read markers etc. No support for vertical buffer list(which I wouldn't really use) or vertical splits (though I think there is a bounty for this), and bracketed paste mode is being developed from what I understand.
I really do want to point out that the scripting API for weechat is superbad and a little on the terrifying scale of things. Specifically this.
Don't get me wrong, there are more options in weechat, and some features I wouldn't mind. But really I think the difference we have is a difference of prospective. Personally I would rather have a very simple client that I can extend to get only the feature set I want. It sounds like you would rather have a more feature packed chat client, which is completely acceptable.
The reason why suggested irssi over weechat, was they were asking for "No DCC, no scripting, no channel management, no frills wanted". irssi is about as frill-less as it gets. Plus I don't want to suggest something that has a know issue with that may cause a seriously bad exploitation vector.
Also, out of curiosity, what do you use bracketed paste for?
Yeah. Here is how you do it. And here is some advice from the tor project on how to use various IRC clients with Tor. Weechat is actually really nice because it allows you to set proxies on a per IRC server basis, which is pretty sweet if you use different proxies for different servers (eg: Tor for some, a VPN for others, or i2p or some other "darknet".)
Nah, mine is mostly default, the only thing I did is to hide the user list.
What you see in that screenshot can be done with scripts.
You can find what you're looking for in here - https://weechat.org/scripts/