# Whalebird
[![CircleCI](https://img.shields.io/circleci/project/github/h3poteto/whalebird-desktop.svg?style=flat-square)](https://circleci.com/gh/h3poteto/whalebird-desktop)
[![GitHub release](http://img.shields.io/github/release/h3poteto/whalebird-desktop.svg?style=flat-square)](https://github.com/h3poteto/whalebird-desktop/releases)
[![App Store](https://img.shields.io/itunes/v/1378283354.svg?style=flat-square)](https://itunes.apple.com/us/app/whalebird/id1378283354)
Whalebird is a mastodon client for desktop application.
![demo](screenshot.gif)
## Feature
- An interface like slack
- Notify to desktop
- Streaming
- Many keyboard shortcuts
- Manage multiple accounts
### Shortcuts
| Mac | Linux, Windows |
Toot, Reply | Cmd + Enter | Ctrl + Enter |
Change accounts | Cmd + 1, 2, 3... | Ctrl + 1, 2, 3... |
Jump to another timeline | Cmd + k | Ctrl + k |
Open new toot window | Cmd + n | Ctrl + n |
Select next toot | j | j |
Select previous toot | k | k |
Reply to the toot | r | r |
Reblog the toot | b | b |
Favourite the toot | f | f |
Open details of the toot | o | o |
Open account profile of the toot | p | p |
## Install
### Mac
[![App Store](app-store.svg)](https://itunes.apple.com/us/app/whalebird/id1378283354)
Or you can download `.dmg` from [release page](https://github.com/h3poteto/whalebird-desktop/releases).
So on, you can install from Homebrew:
```
$ brew update
$ brew cask install whalebird
```
:sparkles: Thanks to [@singingwolfboy](https://github.com/singingwolfboy) for adding it to [homebrew-cask](https://github.com/Homebrew/homebrew-cask/blob/cf568882b6e012956ca404a16be2db36ca873002/Casks/whalebird.rb).
### Linux
You can download `.deb` or `.rpm` from [release page](https://github.com/h3poteto/whalebird-desktop/releases).
If you do not want to use package manager, please download `.tar.bz2` file and docompress it.
Or please install the app from [snapcraft.io](https://snapcraft.io/whalebird).
```
$ sudo snap install whalebird
```
### Windows
You can download `.exe` from [release page](https://github.com/h3poteto/whalebird-desktop/releases).
## Development
We'd love you to contribute to Whalebird.
### Minimum requirements for development
* Node.js greater than or equal version 8.9.0
* npm or yarn
### Getting started
``` bash
# clone this repository
$ git clone https://github.com/h3poteto/whalebird-desktop.git
$ cd whalebird-desktop
# install dependencies
$ npm install
# serve with hot reload at localhost:9080
$ npm run dev
```
### How to add new language
1. First, please prepare [translation](https://github.com/h3poteto/whalebird-desktop/blob/master/src/config/locales/fr/translation.json), and [translation missing](https://github.com/h3poteto/whalebird-desktop/blob/master/src/config/locales/fr/translation.missing.json) file for your language.
2. Next, add your language to constants like [French](https://github.com/h3poteto/whalebird-desktop/blob/master/src/constants/language.js#L10-L13).
3. Finally, add your language at [here](https://github.com/h3poteto/whalebird-desktop/blob/master/src/renderer/components/Preferences/Language.vue#L37).
If there is something unknown, please refer this pull request: https://github.com/h3poteto/whalebird-desktop/pull/502
## Release
### Binary
When you build release packages, please use `electron-builder`.
```bash
# for linux
$ npm run build:linux
# for mac
# This command automatically loads the Developer ID Application certificate from your keychain.
$ npm run build:mac
```
### AppStore
Please prepare certificates on your Apple developer console. The following keys are required:
- Mac App Distribution: `3rd Party Mac Developer Application: NAME (TEAM_ID)`
- Mac Installer Distribution: `3rd Party Mac Developer Installer: NAME (TEAM_ID)`
and register your KeyChain.
Then, create a Mac App ID like `org.whalebird.desktop`.
```bash
$ npm run build:mas
# This command automatically loads the certificates from you keychain.
$ ./appStore.sh
```
After that, the `.pkg` file is created under `./packages`.
Please upload the `.pkg` to App Store using Application Loader in Xcode.
### Snapcraft
First, please prepare snapcraft command.
```bash
$ brew install snapcraft
```
And prepare docker environment which is used in snapcraft building.
Build app for linux.
```bash
$ npm run build:linux
```
And upload.
```bash
$ snapcraft push build/whalebird_1.0.0_amd64.snap --release stable
```
# License
The software is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).