2017-04-15 07:06:14 +02:00
|
|
|
Web-based Desktop Client for [Mastodon][]
|
|
|
|
=========================================
|
|
|
|
|
2017-04-15 21:38:47 +02:00
|
|
|
<img src="https://github.com/rhysd/ss/blob/master/Mstdn/main.png?raw=true" width="484" alt="screen shot"/>
|
|
|
|
|
2017-04-18 13:55:32 +02:00
|
|
|
Mstdn is a desktop application based on mobile version Mastodon page and [Electron][] framework.
|
|
|
|
It basically uses Mastodon's mobile page and provides various desktop application features
|
|
|
|
(such as desktop notification, keybinds, multi-account support).
|
|
|
|
|
2017-04-15 07:06:14 +02:00
|
|
|
Features:
|
|
|
|
|
2017-04-17 07:56:28 +02:00
|
|
|
- [x] Small window on your menubar (or isolated normal window)
|
2017-04-15 21:14:58 +02:00
|
|
|
- [x] Desktop notification
|
2017-04-15 21:38:47 +02:00
|
|
|
- [x] Customizable shortcut keybinds
|
2017-04-18 13:55:32 +02:00
|
|
|
- [x] Multi-account (switching among accounts)
|
2017-04-15 07:06:14 +02:00
|
|
|
|
|
|
|
Mastodon is an open source project. So if you want to make a new UI, you can just fork the project,
|
|
|
|
implement your favorite UI and host it on your place. Then you can participate Mastodon networks from it.
|
|
|
|
|
|
|
|
However, Mastodon is a web application. So we can't go out from a browser. So this small tool
|
|
|
|
provides a way to do it.
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
### Via [npm][]
|
|
|
|
|
|
|
|
```
|
|
|
|
$ npm install -g mstdn
|
|
|
|
```
|
|
|
|
|
|
|
|
### As an isolated app
|
|
|
|
|
2017-04-16 06:22:44 +02:00
|
|
|
Download a package archive from [Release page][], put unarchived app to proper place, and open it.
|
2017-04-15 07:06:14 +02:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
2017-04-15 21:38:47 +02:00
|
|
|
If you installed this app via npm, below command is available to start app.
|
|
|
|
|
|
|
|
```
|
|
|
|
$ open-mstdn-app
|
|
|
|
```
|
|
|
|
|
2017-04-18 13:55:32 +02:00
|
|
|
At first, a dialog which recommends to write up config is shown and JSON config file will be open in your editor.
|
|
|
|
You need to fill up `"name"` and `"host"` keys in first element of `"accounts"`.
|
2017-04-15 21:38:47 +02:00
|
|
|
|
2017-04-18 13:55:32 +02:00
|
|
|
Then please try to start app again. Usage is the same as web client on mobile devices.
|
|
|
|
Some shortcuts are available by default (please see below 'Customization' section).
|
2017-04-15 07:06:14 +02:00
|
|
|
|
2017-04-16 16:11:12 +02:00
|
|
|
Supported platforms are macOS (confirmed with 10.12), Linux (hopefully) and Windows (hopefully).
|
|
|
|
|
2017-04-15 07:06:14 +02:00
|
|
|
## Customization
|
|
|
|
|
|
|
|
Mstdn can be customized with JSON config file at `{app dir}/config.json`
|
|
|
|
|
|
|
|
The `{app dir}` is:
|
|
|
|
|
|
|
|
- `~/Library/Application\ Support/Mstdn` for macOS
|
|
|
|
- `~/.config/Mstdn` for Linux
|
|
|
|
- `%APPDATA%\Mstdn` for Windows.
|
|
|
|
|
2017-04-15 21:38:47 +02:00
|
|
|
The JSON file can contain below key-values:
|
|
|
|
|
|
|
|
### `hot_key`
|
|
|
|
|
|
|
|
`hot_key` is a key sequence to toggle application window. The shortcut key is defined globally.
|
2017-04-18 13:55:32 +02:00
|
|
|
The format is a [Electron's accelerator](https://github.com/electron/electron/blob/master/docs/api/accelerator.md).
|
|
|
|
Please see the document to know how to configure this value.
|
2017-04-15 21:38:47 +02:00
|
|
|
Default value is `"CmdOrCtrl+Shift+S"`. If you want to disable, please set empty string or `null`.
|
|
|
|
|
|
|
|
### `icon_color`
|
|
|
|
|
|
|
|
Color of icon in menubar. `"black"` or `"white"` can be specified.
|
|
|
|
|
|
|
|
### `always_on_top`
|
|
|
|
|
|
|
|
When this value is set to `true`, the window won't be hidden if it loses a focus. Default value is `false`.
|
|
|
|
|
|
|
|
### `normal_window`
|
|
|
|
|
|
|
|
When this value is set to `true`, application will be launched as a normal window application.
|
|
|
|
If menu bar behavior does not work for you, please use set this value to `true` to avoid it.
|
|
|
|
Default value is `false` on macOS or Linux, `true` on Windows because window position is broken in some version of Windows.
|
|
|
|
|
|
|
|
### `zoom_factor`
|
|
|
|
|
|
|
|
Font zoom factor in application. It should be positive number. For example, `0.7` means `70%` font zooming.
|
2017-04-16 06:22:44 +02:00
|
|
|
Default font size is a bit bigger because the UI is originally for mobile devices. So default value is `0.9`.
|
2017-04-15 21:38:47 +02:00
|
|
|
|
|
|
|
### `accounts`
|
|
|
|
|
2017-04-18 13:55:32 +02:00
|
|
|
Array of your accounts. An element should has `"name"`, `"host"` and `"default_page"` keys.
|
|
|
|
`"name"` represents your screen name. `"host"` represents a host part of URL of your mastodon instance.
|
|
|
|
`"default_page"` is a page firstly shown.
|
2017-04-15 21:38:47 +02:00
|
|
|
|
|
|
|
You need to write up this config at first.
|
|
|
|
|
|
|
|
### `keymaps`
|
|
|
|
|
|
|
|
Object whose key is a key sequence and whose value is an action name.
|
|
|
|
|
|
|
|
| Action Name | Description | Default Key |
|
|
|
|
|--------------------|---------------------------------|-------------|
|
|
|
|
| `scroll-down` | Scroll down window | `j` |
|
|
|
|
| `scroll-up` | Scroll up window | `k` |
|
|
|
|
| `scroll-top` | Scroll up to top of window | `i` |
|
2017-04-17 07:56:28 +02:00
|
|
|
| `scroll-bottom` | Scroll down to bottom of window | `m` |
|
2017-04-15 21:38:47 +02:00
|
|
|
|
2017-04-18 13:55:32 +02:00
|
|
|
If an action name starts with `/`, it will navigate to the path. For example,
|
|
|
|
if you set `"/web/timelines/home"` to some key shortcut and you input the key,
|
|
|
|
browser will navigate page to `https://{your host}/web/timelines/home`.
|
2017-04-15 21:38:47 +02:00
|
|
|
|
2017-04-17 07:56:28 +02:00
|
|
|
By default, some key shortcuts for tab items are set in addition to above table.
|
2017-04-15 21:38:47 +02:00
|
|
|
|
2017-04-15 07:06:14 +02:00
|
|
|
## Multi account
|
|
|
|
|
2017-04-18 13:55:32 +02:00
|
|
|
If you set multiple accounts to `accounts` array in `config.json`, `Accounts` menu item will appear in application menu.
|
|
|
|
|
|
|
|
![multi account menu item](https://github.com/rhysd/ss/blob/master/Mstdn/multi-account.png?raw=true)
|
|
|
|
|
|
|
|
It will show the list of your account. Check mark is added for current user.
|
|
|
|
When you click menu item of non-current user, application window will be rectreated and switch page to the account.
|
2017-04-15 21:38:47 +02:00
|
|
|
|
2017-04-15 07:06:14 +02:00
|
|
|
[Mastodon]: https://github.com/tootsuite/mastodon
|
|
|
|
[npm]: https://www.npmjs.com/package/mstdn
|
2017-04-16 06:22:44 +02:00
|
|
|
[Release page]: https://github.com/rhysd/Mstdn/releases
|
2017-04-18 13:55:32 +02:00
|
|
|
[Electron]: electron.atom.io
|