1
0
Fork 0
neonmodem/README.md

204 lines
6.4 KiB
Markdown
Raw Permalink Normal View History

2023-01-07 01:10:45 +00:00
Neon Modem Overdrive
--------------------
2023-07-04 00:30:36 +00:00
[Chat on Matrix](https://matrix.to/#/%21PHlbgZTdrhjkCJrfVY%3Amatrix.org)
2023-01-08 22:12:45 +00:00
![Neon Modem Overdrive](splashscreen.png)
2023-01-09 16:14:19 +00:00
[*Neon Modem Overdrive*][neonmodem] is a [BBS][wiki-bbs]-style command line client that
2023-01-07 01:10:45 +00:00
supports [Discourse][discourse], [Lemmy][lemmy], [Lobsters][lobsters] and
2023-01-09 16:11:51 +00:00
[Hacker News][hackernews] as backends, and seamlessly integrates all of them
into a streamlined TUI. And yes, you heard that right, I really did call it
*Neon Modem Overdrive*.
2023-01-07 01:10:45 +00:00
2023-01-07 07:00:18 +00:00
*Neon Modem* is built in Go, using [Charm's Bubble Tea][bubbletea] TUI
framework, but implements an own *window manager* (or *compositor* if you want)
that allows it to use a third dimension, on top of the two dimensional rendering
that Bubble Tea offers today. With that it is possible to display dialogs on top
of one another, in order to offer a smoother UI experience.
2023-01-07 01:10:45 +00:00
2023-01-10 16:34:26 +00:00
[More info here!](https://xn--gckvb8fzb.com/get-the-bbs-scene-vibes-back-with-neonmodem-overdrive/)
2023-01-11 06:36:27 +00:00
## Support
2023-01-14 20:14:43 +00:00
| System | Available | List Forums | List Posts | List Replies | Create Post | Create Reply |
| :----------------- | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: |
| Discourse | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Lemmy | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Lobsters | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | |
| Hacker News | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | |
| RSS+Disqus/Isso(?) | | | | | | |
| Superhighway84 | | | | | | |
| NNTP | | | | | | |
2023-01-11 06:36:27 +00:00
2023-01-07 01:10:45 +00:00
[neonmodem]: https://neonmodem.com
2023-01-09 16:14:19 +00:00
[wiki-bbs]: https://en.wikipedia.org/wiki/Bulletin_board_system
2023-01-07 01:10:45 +00:00
[discourse]: https://github.com/discourse
[lemmy]: https://github.com/LemmyNet
[lobsters]: https://github.com/lobsters/lobsters
[hackernews]: https://news.ycombinator.com
[bubbletea]: https://github.com/charmbracelet/bubbletea
2023-01-11 05:04:22 +00:00
## Installation
2023-01-07 01:10:45 +00:00
2023-01-11 05:04:22 +00:00
### From Release
Download the [latest
release](https://github.com/mrusme/neonmodem/releases/latest) and unpack
it:
```sh
$ tar -xzf ./neonmodem_*.tar.gz
```
The binary is called `neonmodem`. Feel free to move it to e.g. `/usr/local/bin`.
### From Sauce
Clone this repository
- from [GitHub](https://github.com/mrusme/neonmodem)
```sh
$ git clone git@github.com:mrusme/neonmodem.git
```
2024-04-14 01:17:11 +00:00
- from
[Radicle](https://app.radicle.xyz/nodes/seed.xn--gckvb8fzb.com/rad:z4GExf1wpsyn6WDc2dNAxVc6LPS9G)
```sh
$ rad clone rad:z4GExf1wpsyn6WDc2dNAxVc6LPS9G
```
2023-01-11 05:04:22 +00:00
Then cd into the cloned directory and run:
2023-01-07 01:10:45 +00:00
```sh
make
```
2023-01-11 05:04:22 +00:00
The binary is called `neonmodem`. Feel free to move it to e.g. `/usr/local/bin`.
2023-01-07 01:10:45 +00:00
For Arch Linux an AUR package is available here: https://aur.archlinux.org/packages/neonmodem
Install with your favorite AUR helper.
2023-01-07 01:10:45 +00:00
2024-01-12 10:13:36 +00:00
On NetBSD, a package is available from the official repositories.
To install it, simply run `pkgin install neonmodem`.
2023-01-07 04:03:43 +00:00
## Configuration
2023-01-07 01:10:45 +00:00
2023-01-07 04:03:43 +00:00
Before launching *Neon Modem Overdrive* it requires initial setup of the
services (a.k.a. *systems*). Run `neonmodem connect --help` to find out more.
Connecting a service will add it to the configuration TOML.
### Linux/Unix
`~/.config/neonmodem.toml`
### MacOS
`$HOME/Library/Application\ Support/neonmodem.toml`
2023-01-07 04:03:43 +00:00
### Systems
2023-01-11 05:04:22 +00:00
2023-01-07 04:03:43 +00:00
#### Discourse
For connecting to a Discourse instance you'll need to have an active account on
that instance. *Neon Modem* will store the instance URL, username and a user
key, but no password.
```sh
neonmodem connect --type discourse --url https://www.keebtalk.com
```
#### Lemmy
For connecting to a Lemmy instance you'll need to have an active account on that
instance. *Neon Modem* will store the instance URL, username and password.
```sh
neonmodem connect --type lemmy --url https://lemmy.ml
```
#### Lobsters
For connecting to a Lobsters instance you won't need an account, as the
integration is read-only. *Neon Modem* will store the instance URL.
```sh
neonmodem connect --type lobsters --url https://lobste.rs
```
#### Hacker News
For connecting to Hacker News you won't need an account, as the integration is
read-only.
```sh
neonmodem connect --type hackernews
```
### UI
The UI can be fully customized via the `Theme` section in the configuration
2023-01-10 18:05:45 +00:00
file. To reset settings, all theme related configurations can simply be deleted
2023-01-07 04:03:43 +00:00
from the configuration.
## Run
After setup *Neon Modem* can be launched by calling `neonmodem` without any
arguments. It will briefly display a splash screen, then switch to the posts
list, which will aggregate the latest posts from all connected systems. A
progress icon will be visible in the header while network requests are loading.
2023-01-08 22:12:45 +00:00
### Usage
![Neon Modem Overdrive](neonmodem.gif)
#### Navigation
2023-01-07 04:03:43 +00:00
In the posts list:
- `j`: Scroll down
- `k`: Scroll up
- `r`/`enter`: Open selected post
- `n`: Write new post in on the system/forum of the current selected post
- `C-e`: Open system selector
- `C-t`: Open forum selector
- `q`/`esc`: Quit
In the post view dialog:
- `r`: Reply to post
- `#r`: Reply to specific comment # in post, e.g. `3r` to reply to the reply #3
2023-01-10 19:38:58 +00:00
- `z`: Load older replies (if available)
2023-01-07 04:03:43 +00:00
- `esc`: Close dialog
In the new post / new reply dialog:
- `tab`: Switch between elements (only in new post dialog)
- `C-s`: Submit post/reply
- `esc`: Close dialog
## FAQ
- **Q:** The post view is really slow when using a large terminal.\
**A:** Turning off image rendering will improve performance significantly on
very large terminal windows and can be done by setting `RenderImages = false`
in the configuration.
2023-01-07 04:20:51 +00:00
- **Q:** Can I haz Reddit?\
**A:** I won't do the heavy lifting of integrating a proprietary platform with
a $15 billion valuation that can't even be bothered to maintain a solid set of
client API libraries. If you feel like, go ahead and PR!