Giter Site home page Giter Site logo

sclack's Introduction

Sclack

The best CLI client for Slack, because everything is terrible!

Sclack

Disclaimer

The project is still under alpha, there are lots of things already done, but there is also a lot of work to do! If you want to help, please contact me under [email protected] or create an issue! Working in community, we can soon have a CLI client as complete as the web one!

Setup

The first thing you need to do is to get a Slack token here. Use, create or request a token for each workspace that you'll use on Sclack. Not all workspaces allow you to generate a token, so sometimes you'll need to ask for the administrator to enable the feature.

Optional Dependencies

Nerd Fonts

Sclack seems better when used with a Nerd Font. Using them is completely optional, but it is how some Sclack icons are possible. Personally, I use Fira Code Nerd Font. Download, install and set as the default font of your terminal emulator.

libcaca

Sclack uses caca-utils to create ANSI/VT100 + ASCII versions of pictures and render them. Images will only be rendered if both caca-utils is installed and features.pictures is configured to true. To install caca-utils, just run sudo apt-get install caca-utils on Debian and brew install libcaca on OS X.

Installation

From Source

Ensure you have Python 3.4 or superior version.

pip

git clone https://github.com/haskellcamargo/sclack.git
cd sclack
pip3 install -r requirements.txt
chmod +x ./app.py
./app.py

pipenv

git clone https://github.com/haskellcamargo/sclack.git
cd sclack
export PIPENV_VENV_IN_PROJECT=1
pipenv install # install deps
pipenv shell # enter virtualenv
python app.py # run app

From Binary

If you don't have Python installed, you can get the compiled binary for Sclack on releases page. Versions will be available for Linux x86/x64 and OS X.

Running

Run ./app.py after giving the correct permissions. If you don't have a ~/.sclack file, you can generate one here by providing your workspace token. You can change the theme, enable or disable images, emojis, markdown, configure keyboards and everything else on config.json. Important: use q to quit!

Your ~/.sclack file will look like:

{
    "workspaces": {
        "default": "wow-such-secret"
    }
}

Multiple workspaces

If you want to, you can use Sclack in multiple workspaces. You can have at most 9 workspaces defined inside workspaces:

{
    "workspaces": {
        "default": "wow-such-secret",
        "another": "wow-another-secret"
    }
}

You can use the keys from 1 up to 9 to switch workspaces or event right-click the indicator:

Multiple workspaces

Default keybindings

{
    "delete_message": "d",
    "edit_message": "e",
    "go_to_chatbox": "c",
    "go_to_profile": "p",
    "go_to_sidebar": "esc",
    "quit_application": "q",
    "set_edit_topic_mode": "t",
    "set_insert_mode": "i",
    "yank_message": "y",
    "cursor_up": "k",
    "cursor_down": "j"
}

The mouse support also has been programmed. You can scroll the chatbox and the sidebar and double click the channels to select.

Tested Terminals

Sclack has been tested with the following terminal emulators:

  • iTerm2
  • QTerminal
  • Terminal (OS X)
  • Terminator
  • XTerm

Contributing

Contributions are very welcome, and there is a lot of work to do! You can...

  • Check out our open issues
  • Provide bug reports
  • Create packages for pip, apt, dnf, rpm, pacman and brew
  • Improve documentation
  • Implement handler for new events
  • Refactor the workarounds in the code
  • Create new themes
  • Make things easier to configure

Screenshots

Made with ๐Ÿ˜ก by @haskellcamargo

sclack's People

Contributors

abhi-jha avatar arthurhenrique avatar budnik avatar garethp avatar grubernaut avatar haskellcamargo avatar leschlogl avatar onlurking 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.