major rework of the website content

This commit is contained in:
CJ van den Berg 2025-10-15 20:58:58 +02:00
parent 061a0d938d
commit 8df841ad72
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
6 changed files with 222 additions and 166 deletions

10
content/community.smd Normal file
View file

@ -0,0 +1,10 @@
---
.title = "Community",
.date = @date("2025-10-15T12:24:45+02:00"),
.author = "CJ van den Berg",
.layout = "index.shtml",
.draft = false,
---
Join our [Discord server](https://discord.com/invite/4wvteUPphx)
or discuss on [GitHub Discussions](https://github.com/neurocyte/flow/discussions)

View file

@ -15,6 +15,58 @@ command. The manual is included here for convenience.
* [Flow Control online help](/docs/help) * [Flow Control online help](/docs/help)
## Basic Usage
```bash
flow file.zig:42 # Open at line 42
flow --language zig CMakeLists.txt # Force file type
flow --list-languages # Show all supported languages
flow --help # List of command line options
```
## Key Controls
| Command | Action |
|---------------------------|----------------------|
| `F1` | Open online manual |
| `F4` | Switch input mode |
| `Ctrl+Shift+P` or `Alt+x` | Command palette |
| `Ctrl+F2` | View all keybindings |
Run the `Edit keybindings` command to save the current keybinding mode to a
file and open it for editing. Save your customized keybinds under a new name
in the same directory to create an entirely new keybinding mode. Keybinding
changes will take effect on restart.
## Configuration
Configuration is mostly dynamically maintained with various commands in the UI.
It is stored under the standard user configuration path. Usually
`~/.config/flow` on Linux/FreeBSD/MacOS. %APPDATA%\Roaming\flow on Windows.
There are commands to open the various configuration files, so you don't have to
manually find them. Look for commands starting with `Edit` in the command
palette.
File types may be configured with the `Edit file type configuration` command.
You can also create a new file type by adding a new `.conf` file to the
`file_type` directory. Have a look at an existing file type to see what options
are available.
Logs, traces and per-project most recently used file lists are stored in the
standard user application state directory. Usually `~/.local/state/flow` on
Linux/FreeBSD/MacOS and %APPDATA%\Roaming\flow on Windows.
Kitty, Ghostty and most other terminals have default keybindings that conflict
with common editor commands. We highly recommend rebinding them to keys that are
not generally used inside TUI applications.
For Kitty rebinding `kitty_mod` is usually enough:
```
kitty_mod ctrl+alt
```
## Developer Resources ## Developer Resources
* [Architecture overview](/docs/architecture) * [Architecture overview](/docs/architecture)

34
content/downloads.smd Normal file
View file

@ -0,0 +1,34 @@
---
.title = "Downloads",
.date = @date("2025-10-15T11:14:32+02:00"),
.author = "CJ van den Berg",
.layout = "index.shtml",
.draft = false,
---
See the [installation guide](/installation) for instructions on downloading and
installing with the installer script.
## Releases
- [codeberg.org](https://codeberg.org/neurocyte/flow/releases/latest) (binaries & source)
- [github.com](https://github.com/neurocyte/flow/releases/latest) (binaries & source)
Or check your favorite local system package repository.
See [repology](https://repology.org/project/flow-control/versions) for available
versions.
## Nightly builds
- [flow-control.dev](https://git.flow-control.dev/neurocyte/flow-nightly/releases/latest) (source only)
- [codeberg.org](https://codeberg.org/neurocyte/flow-nightly/releases/latest) (binaries & source)
- [github.com](https://github.com/neurocyte/flow-nightly/releases/latest) (binaries & source)
## Source Code
- [flow-control.dev](https://git.flow-control.dev/neurocyte/flow)
- [github.com](https://github.com/neurocyte/flow)
- [codeberg.org](https://codeberg.org/neurocyte/flow)
- [sr.ht (sourcehut)](https://git.sr.ht/~neurocyte/flow)

View file

@ -8,172 +8,48 @@
## a programmer's text editor ## a programmer's text editor
Flow Control is under active development, but usually very stable. Flow Control is under active development, but very stable.
[]($video.siteAsset('video/flow-control.mp4').controls(true)) []($video.siteAsset('video/flow-control.mp4').controls(true))
## 🚀 Features ## 🚀 Features
- **Lightning Fast** TUI with ≤6ms response times - **Lightning Fast** TUI with ≤6ms frame times, **low latency** input handling
- **Tree-sitter** powered syntax highlighting and smooth **animated scrolling**
- Intuitive UI with **tabs**, **scrollbars** and **palettes** with full
**mouse** support for all UI elements
- Support for more than **70 programming languages**, **zero
configuration** needed, via **tree-sitter** powered syntax highlighting
- **Language Server Protocol** pre configured support for most language servers - **Language Server Protocol** pre configured support for most language servers
- Multi-cursor editing & mouse support - Powerful **multi-cursor** editing and integrated **clipboard history**
- Cross-platform (Linux/macOS/Windows/Android/FreeBSD) - Powerful configurable keybinding system that supports **modal** and
- Multiple keybinding modes **non-modal** editing styles
- Flow Control (common GUI IDE style bindings) - Multiple pre-configured **keybinding modes**
- Flow Control - GUI IDE style bindings (similar to vscode)
- Emacs - Emacs
- Vim - Vim
- Helix - Helix
- Custom user bindings - User created
- Hybrid rope/piece-table buffer system - Hybrid rope/piece-table buffer system, edit **very large files** with
**thousands of cursors**
- Full **unicode** support, including support for the kitty text sizing protocol
- Runs on **Linux, FreeBSD, MacOS, Windows and Android** (under termux) with
easy **cross-compilation** to all supported targets
## Requirements ## Requirements
- A modern terminal with 24bit color and, ideally, kitty keyboard protocol support. Kitty, - A modern terminal with **24bit color** and, ideally, **kitty keyboard
Foot and Ghostty are the recommended terminals at this time. Most other terminals protocol** support. **Kitty**, **Foot** and **Ghostty** are the recommended
will work, but with reduced functionality. terminals at this time. **Zellij** also works well. Most other terminals will
- NerdFont support. Either via terminal font fallback or a patched font. work, but likely with reduced functionality.
- Linux, MacOS, Windows, Android (Termux) or FreeBSD. - **NerdFont** support. Either via terminal font fallback or a patched font.
- A UTF-8 locale - A **UTF-8** locale
## 📦 Installation
### Linux, MacOS and FreeBSD
Fetch and install the latest release to `/usr/local/bin` with the installation helper script:
```
curl -fsSL https://flow-control.dev/install | sh
```
Install the latest nightly build:
```
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly
```
with debug symbols:
```
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --debug
```
See all avalable options for the installer script:
```
curl -fsSL https://flow-control.dev/install | sh -s -- --help
```
Install the installer for easy updating of flow:
```
sudo curl -fsSL -o /usr/local/bin/update-flow https://flow-control.dev/install
sudo chmod +x /usr/local/bin/update-flow
update-flow
```
At the top of the installer are variables to pre-answer the installation questions.
Configure them to your liking.
### Windows
For Windows the installer scripts are a little different.
Fetch and install the latest release to `%AppData%/Roaming/flow/bin`:
```
Invoke-RestMethod "https://flow-control.dev/install.ps1" | Invoke-Expression
```
Install the latest nightly build:
```
Invoke-RestMethod "https://flow-control.dev/install-nightly.ps1" | Invoke-Expression
```
Install the latest nightly build with pdb debug symbol files:
```
Invoke-RestMethod "https://flow-control.dev/install-debug.ps1" | Invoke-Expression
```
The Windows installer will also install itself as `update-flow.ps1` so you can just
run `update-flow` in a terminal to update to the latest release or nightly.
### Prebuilt Binaries
- Stable: [Releases](https://github.com/neurocyte/flow/releases/latest)
- Nightly: [Nightly Builds](https://github.com/neurocyte/flow-nightly/releases/latest)
Or check your favorite local system package repository.
### Build from Source
```bash
# Basic build
zig build -Doptimize=ReleaseSafe
# Cross-compile examples
zig build -Dtarget=x86_64-windows --prefix zig-out/win64
zig build -Dtarget=aarch64-linux-musl --prefix zig-out/arm-linux
```
The binary is:
```
zig-out/bin/flow
```
It is statically built (by default) and contains all the required tree-sitter parsers
and queries. No additional runtime files are required. Place it in your path for convenient
access.
## Configuration
Configuration is mostly dynamically maintained with various commands in the UI.
It is stored under the standard user configuration path. Usually `~/.config/flow`
on Linux/FreeBSD/MacOS. %APPDATA%\Roaming\flow on Windows.
There are commands to open the various configuration files, so you don't have to
manually find them. Look for commands starting with `Edit` in the command palette.
File types may be configured with the `Edit file type configuration` command. You
can also create a new file type by adding a new `.conf` file to the `file_type`
directory. Have a look at an existing file type to see what options are available.
Logs, traces and per-project most recently used file lists are stored in the
standard user application state directory. Usually `~/.local/state/flow` on
Linux/FreeBSD/MacOS and %APPDATA%\Roaming\flow on Windows.
Kitty, Ghostty and most other terminals have default keybindings that conflict
with common editor commands. We highly recommend rebinding them to keys that are
not generally used inside TUI applications.
For Kitty rebinding `kitty_mod` is usually enough:
```
kitty_mod ctrl+alt
```
## 🛠️ Basic Usage
```bash
flow file.zig:42 # Open at line 42
flow --language zig CMakeLists.txt # Force file type
flow --list-languages # Show all supported languages
flow --help # List of command line options
```
## ⌨️ Key Controls
| Command | Action |
|---------------------------|----------------------|
| `F4` | Switch input mode |
| `Ctrl+Shift+P` or `Alt+x` | Command palette |
| `Ctrl+F2` | View all keybindings |
Run the `Edit keybindings` command to save the current keybinding mode to a
file and open it for editing. Save your customized keybinds under a new name
in the same directory to create an entirely new keybinding mode. Keybinding
changes will take effect on restart.
## 🛣️ Roadmap ## 🛣️ Roadmap
See our [devlog](/devlog/2025) for on-going updates from the development team.
**In Development**: **In Development**:
- LSP completion support - LSP completion support
- Persistent undo/redo - Persistent undo/redo
@ -184,5 +60,3 @@ changes will take effect on restart.
- Plugin system - Plugin system
- Multi-terminal sessions - Multi-terminal sessions
## 💬 Community
Join our [Discord server](https://discord.com/invite/4wvteUPphx) or discuss on [GitHub Discussions](https://github.com/neurocyte/flow/discussions)

94
content/installation.smd Normal file
View file

@ -0,0 +1,94 @@
---
.title = "Installation",
.date = @date("2025-10-15T11:14:32+02:00"),
.author = "CJ van den Berg",
.layout = "index.shtml",
.draft = false,
---
- [Linux, MacOS, FreeBSD and Termux](#posix)
- [Windows](#windows)
- [Source](#source)
- [Tarball install](#tarball)
[]($section.id("posix"))
## Linux, MacOS, FreeBSD and Termux
Fetch and install the latest release with the installation helper script:
```
curl -fsSL https://flow-control.dev/install | sh
```
Install the latest nightly build:
```
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly
```
with debug symbols:
```
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --debug
```
See all avalable options for the installer script:
```
curl -fsSL https://flow-control.dev/install | sh -s -- --help
```
Install the installer for easy updating of flow:
```
sudo curl -fsSL -o /usr/local/bin/update-flow https://flow-control.dev/install
sudo chmod +x /usr/local/bin/update-flow
update-flow
```
At the top of the installer are variables to pre-answer the installation
questions. Configure them to your liking.
[]($section.id("windows"))
## Windows
For Windows the installer scripts are a little different.
Fetch and install the latest release to `%AppData%/Roaming/flow/bin`:
```
Invoke-RestMethod "https://flow-control.dev/install.ps1" | Invoke-Expression
```
Install the latest nightly build:
```
Invoke-RestMethod "https://flow-control.dev/install-nightly.ps1" | Invoke-Expression
```
Install the latest nightly build with pdb debug symbol files:
```
Invoke-RestMethod "https://flow-control.dev/install-debug.ps1" | Invoke-Expression
```
The Windows installer will also install itself as `update-flow.ps1` so you can
just run `update-flow` in a terminal to update to the latest release or nightly.
[]($section.id("source"))
## Build from Source
See the [Building section of `README.md`](https://git.flow-control.dev/neurocyte/flow/src/branch/master/README.md#building)
in the source repository for build instructions.
[]($section.id("tarball"))
## Manual install from tarballs or zip files
See the [downloads](/downloads) page for binaries that you can manually install.
Just download, unpack, and place the binary anywhere you want. There are no
runtime files required and configuration directories and files are created on
demand.

View file

@ -15,23 +15,15 @@
<nav id="menu" class="centered"> <nav id="menu" class="centered">
<ctx about="$site.page('')"><a href="$ctx.about.link()" text="$ctx.about.title">home</a></ctx> <ctx about="$site.page('')"><a href="$ctx.about.link()" text="$ctx.about.title">home</a></ctx>
<a href="https://github.com/neurocyte/flow/releases/latest">downloads</a> <ctx about="$site.page('installation')"><a href="$ctx.about.link()" text="$ctx.about.title">installation</a></ctx>
<a href="https://github.com/neurocyte/flow-nightly/releases/latest">nightly</a> <ctx about="$site.page('downloads')"><a href="$ctx.about.link()" text="$ctx.about.title">downloads</a></ctx>
<ctx :if="$site.page('devlog').subpages().first?()"><a href="$if.link()">devlog</a></ctx> <ctx :if="$site.page('devlog').subpages().first?()"><a href="$if.link()">devlog</a></ctx>
<a href="https://git.flow-control.dev/neurocyte/flow">source</a>
<ctx about="$site.page('docs')"><a href="$ctx.about.link()" text="$ctx.about.title">docs</a></ctx> <ctx about="$site.page('docs')"><a href="$ctx.about.link()" text="$ctx.about.title">docs</a></ctx>
<a href="https://discord.com/invite/4wvteUPphx">Discord</a> <ctx about="$site.page('community')"><a href="$ctx.about.link()" text="$ctx.about.title">community</a></ctx>
<a href="https://github.com/neurocyte/flow">GitHub</a>
<a href="https://codeberg.org/neurocyte/flow">Codeberg</a>
<a href="https://git.sr.ht/~neurocyte/flow">sourcehut</a>
</nav> </nav>
<script src="$site.asset('js/index.js').link()"></script> <script src="$site.asset('js/index.js').link()"></script>
<super> <super>