Coder Social home page Coder Social logo

slack's Introduction

slack++

c++ slack ncurses client

To build you need:

  • jsoncpp
  • cmake
  • pkg-config
  • openssl
  • libcurl
  • ncursesw

Optional:

  • libnotify

and a fairly recent c++ compiler.
Note that cmake is required only at build time.
It was tested on Archlinux and Mac OS X 10.10.
Archlinux user will find a proper PKGBUILD in Arch folder. I'm gonna push it to AUR by the way.

How to build & run?

$ mkdir build
$ cd build
$ cmake -G "Unix Makefiles" ../
$ make
$ ./slack++

You've got to export at least SLACK_TOKEN, eg: by adding at the end of .bashrc in your home:

export SLACK_TOKEN=xxxxxxxxxxxxx

If you're interested in multiple companies, you can export $companyname_SLACK_TOKEN too.
Then you can start slack by passing it your desired company name:

$ ./slack++ $companyname

This is specially useful as slack++ still hasn't gained multicompany support (and i'm not even sure it will ever gain that),
so you can simply start 2 or more instances of slack++.
You can create an alias for each in .bashrc, something like:

export mycompany_SLACK_TOKEN=xxxxxxx
alias company='./slack++ mycompany'

Then you can even change shipped .desktop file (on linux) to start your desired company. Or, obviously, creating as many desktop file as you need for your companies.

How to create slack token:

Instructions:

  • ESC to quit
  • tab to change focus from Input mode to roster selection mode
  • while in roster mode, enter to choose an user to chat with
  • "m" (case insensitive) to mute current focused chat, "n" to mute all chats (muted chats will appear without bold)
  • muted chats won't show any libnotify notification
  • while in input mode, enter to send a message
  • while in input mode, key_up to go back in history, key_down to come back
  • enjoy

Features:

  • libnotify support
  • unread counter
  • mute single chat/mute all support (no libnotify notification)
  • history support
  • very low resource usage
  • mouse support: on Roster: wheels to scroll up/down, left click to select an user, right click to mute it. On Input mode: wheels to scroll up/down chat history, right click to change user to chat with.
  • on linux, SIGTERM and SIGINT will be gracefully handled
  • multi platform (osx and linux)
  • small log file located in user home (.slack.logs), that will be resetted every time slack++ is started

IT DOES NOT SUPPORT TERMINAL RESIZE
Given our data structure, and the effort that we should put to have proper terminal resize support, we won't implement it.
We consider it useless for a ncurses client. If you're willing to, you can send us a pull request.

slack's People

Contributors

ctrlcctrlv avatar ehasting avatar fededp avatar ga2arch avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.