docs: update readme and help

This commit is contained in:
CJ van den Berg 2024-08-01 18:10:05 +02:00
parent 3400554f57
commit 948328bcd0
9 changed files with 62 additions and 67 deletions

View file

@ -6,37 +6,23 @@ and is my daily driver for most things coding related.
https://github.com/neurocyte/flow/assets/1552770/97aae817-c209-4c08-bc65-0a0bf1f2d4c6 https://github.com/neurocyte/flow/assets/1552770/97aae817-c209-4c08-bc65-0a0bf1f2d4c6
# Requirements # Requirements
- A modern terminal with 24bit color and kitty keyboard protocol support. Kitty, Foot - A modern terminal with 24bit color and, ideally, kitty keyboard protocol support. Kitty,
and Ghostty are the only recommended terminals at this time. Most other terminals Foot and Ghostty are the only recommended terminals at this time. Most other terminals
will work, but with reduced functionality. will work, but with reduced functionality.
- NerdFonts support - NerdFont support. Either via terminal font fallback or a patched font.
- Linux, MacOS, (somewhat experimental) Windows, Android (Termux) or FreeBSD. Other BSDs - Linux, MacOS, Windows, Android (Termux) or FreeBSD.
probably work too, but nobody has tried it yet. - A UTF-8 locale
- A UTF-8 locale (very important!)
# Building # Building
Make sure your system meets the requirements listed above. Make sure your system meets the requirements listed above.
Flow tracks zig master most of the time. Build with: Flow builds with zig 0.13 at this time. Build with:
```shell ```shell
zig build -Doptimize=ReleaseFast zig build -Doptimize=ReleaseFast
``` ```
Sometimes zig master may introduce breaking changes and Flow may take a few days to
catch up. In that case there is a simple zig wrapper script provided that will download
and build with the last known compatible version of zig. The version is stored in
`build.zig.version`.
Build with the zig wrapper:
```shell
./zig build -Doptimize=ReleaseFast
```
The zig wrapper places the downloaded zig compiler in the `.cache` directory and does
not touch your system. It requires `bash`, `curl` and `jq` to run.
Thanks to Zig you may also cross-compile from any host to pretty much any Thanks to Zig you may also cross-compile from any host to pretty much any
target. For example: target. For example:
@ -48,7 +34,7 @@ zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl --prefix zig-out/aa
# Running Flow Control # Running Flow Control
The output binary is: The binary is:
```shell ```shell
zig-out/bin/flow zig-out/bin/flow
@ -60,7 +46,13 @@ Place it in your path for convenient access:
sudo cp zig-out/bin/flow /usr/local/bin sudo cp zig-out/bin/flow /usr/local/bin
``` ```
Flow Control is a single statically linked binary. No further runtime is required. Or if you prefer, let zig install it in your home directory:
```shell
zig build -Doptimize=ReleaseFast --prefix ~/.local
```
Flow Control is a single statically linked binary. No further runtime files are required.
You may install it on another system by simply copying the binary. You may install it on another system by simply copying the binary.
```shell ```shell
@ -68,11 +60,12 @@ scp zig-out/bin/flow root@otherhost:/usr/local/bin
``` ```
Configuration is mostly dynamically maintained with various commands in the UI. Configuration is mostly dynamically maintained with various commands in the UI.
It stored under the standard user configuration path. Usually `~/.config/flow`. It is stored under the standard user configuration path. Usually `~/.config/flow`
(%APPDATA%\Roaming\flow on Windows) on Linux. %APPDATA%\Roaming\flow on Windows. Somewhere magical on MacOS
Logs, traces and per-project most recently used file lists are stored in the Logs, traces and per-project most recently used file lists are stored in the
standard user runtime cache directory. Usually `~/.cache/flow`. standard user application state directory. Usually `~/.local/state/flow` on
Linux and %APPDATA%\Roaming\flow on Windows.
Files to load may be specifed on the command line: Files to load may be specifed on the command line:
@ -80,6 +73,9 @@ Files to load may be specifed on the command line:
flow fileA.zig fileB.zig flow fileA.zig fileB.zig
``` ```
The last file will be opened and the previous files will be placed in reverse
order at the top of the recent files list. Switch to recent files with Ctrl-e.
Common target line specifiers are supported too: Common target line specifiers are supported too:
```shell ```shell
@ -98,6 +94,8 @@ Use the --language option to force the file type of a file:
flow --language bash ~/.bash_profile flow --language bash ~/.bash_profile
``` ```
Show supported language names with `--list-languages`.
See `flow --help` for the full list of command line options. See `flow --help` for the full list of command line options.
# Terminal configuration # Terminal configuration
@ -126,11 +124,11 @@ For Ghostty each conflicting binding has to be reconfigured individually.
- theme support (compatible with vscode themes via the flow-themes project) - theme support (compatible with vscode themes via the flow-themes project)
- infinite undo/redo (at least until you run out of ram) - infinite undo/redo (at least until you run out of ram)
- stuff I've forgotten to mention... - stuff I've forgotten to mention...
- find in files
- command palette
# Features in progress (aka, the road to 1.0) # Features in progress (aka, the road to 1.0)
- completion UI/LSP support for completion - completion UI/LSP support for completion
- find in files
- command palette
- persistent undo/redo - persistent undo/redo
- file watcher for auto reload - file watcher for auto reload

31
help.md
View file

@ -30,8 +30,7 @@ settings) is persisted in the configuration file automatically.
- F2 => Cycle major input modes (flow, vim, ...) - F2 => Cycle major input modes (flow, vim, ...)
The current input mode Input mode is displayed in the `modestatus` The current input mode is displayed in the at the left side of the statusbar.
widget at the left side of the statusbar.
## Flow mode ## Flow mode
@ -70,15 +69,15 @@ cycle style of editing.
- Ctrl-t, Ctrl-b => - Ctrl-t, Ctrl-b =>
Enter move to next/previous character mode Enter move to next/previous character mode
- Ctrl-n, Ctrl-p, F3, Shift-F3, Alt-n, Alt-p => - Ctrl-n, Ctrl-p, F3, Shift-F3 =>
Goto next/previous match Goto next/previous match
- Ctrl-l => - Ctrl-l =>
Scroll cursor to center of screen, cycle cursor to Scroll cursor to center of screen. Press again to cycle the cursor to
top/bottom of screen the top/bottom/center of the screen
- MouseLeft => - MouseLeft =>
Clear all cursors and selections and place cursor at mouse pointer Clear all cursors and selections and the place cursor at the mouse pointer
- MouseWheel => - MouseWheel =>
Scroll Scroll
@ -116,7 +115,7 @@ cycle style of editing.
Select word under cursor, or add cursor at next match Select word under cursor, or add cursor at next match
(see Multi Cursor Commands) (see Multi Cursor Commands)
- Ctrl-Space => - Ctrl-Shift-Space =>
Reverse selection direction Reverse selection direction
- Double-MouseLeft => - Double-MouseLeft =>
@ -204,6 +203,9 @@ cycle style of editing.
- Alt-Shift-f => - Alt-Shift-f =>
Reformat file or selection Reformat file or selection
- Alt-u, Alt-l =>
Convert the selection or word at cursor to upper/lower case
### File Commands ### File Commands
- Ctrl-s => - Ctrl-s =>
@ -213,13 +215,7 @@ cycle style of editing.
Open file Open file
- Ctrl-e => - Ctrl-e =>
Open recent file, repeat for quick select Open recent file. Repeat for quick select
- Ctrl-q =>
Exit
- Ctrl-q =>
Exit
- Ctrl-q => - Ctrl-q =>
Exit Exit
@ -247,7 +243,8 @@ cycle style of editing.
### Language Server Commands ### Language Server Commands
- Alt-n, Alt-p - Alt-n, Alt-p
Goto next/previous diagnostic Goto the next/previous diagnostic, or if the matching files list is open,
goto the next/previous matching file position.
- F12 => - F12 =>
Goto definition of symbol at cursor Goto definition of symbol at cursor
@ -266,8 +263,8 @@ cycle style of editing.
- F7 => - F7 =>
Dump current line to log view Dump current line to log view
- F11, Ctrl-J, Alt-l => - F11, Ctrl-J =>
Toggle log view Toggle panel view (defaults to log view)
- Ctrl-Shift-/ => - Ctrl-Shift-/ =>
Dump current widget tree to log view Dump current widget tree to log view

View file

@ -382,7 +382,7 @@ const hints = tui.KeybindHints.initComptime(.{
.{ "select_buffer_end", "C-S-end" }, .{ "select_buffer_end", "C-S-end" },
.{ "select_down", "S-down" }, .{ "select_down", "S-down" },
.{ "select_end", "S-end" }, .{ "select_end", "S-end" },
.{ "selections_reverse", "C-space" }, .{ "selections_reverse", "C-S-space" },
.{ "select_left", "S-left" }, .{ "select_left", "S-left" },
.{ "select_page_down", "S-pgdn" }, .{ "select_page_down", "S-pgdn" },
.{ "select_page_up", "S-pgup" }, .{ "select_page_up", "S-pgup" },
@ -404,7 +404,7 @@ const hints = tui.KeybindHints.initComptime(.{
.{ "toggle_input_mode", "F2" }, .{ "toggle_input_mode", "F2" },
.{ "toggle_inputview", "A-i" }, .{ "toggle_inputview", "A-i" },
.{ "toggle_inspector_view", "F5, C-F5, C-S-i" }, .{ "toggle_inspector_view", "F5, C-F5, C-S-i" },
.{ "toggle_logview", "C-j, F11" }, .{ "toggle_panel", "C-j, F11" },
.{ "toggle_whitespace", "C-F10" }, .{ "toggle_whitespace", "C-F10" },
.{ "to_lower", "A-l" }, .{ "to_lower", "A-l" },
.{ "to_upper", "A-u" }, .{ "to_upper", "A-u" },

View file

@ -56,7 +56,7 @@ fn mapPress(self: *Self, keypress: u32, modifiers: u32) tp.result {
return switch (modifiers) { return switch (modifiers) {
mod.CTRL => switch (keynormal) { mod.CTRL => switch (keynormal) {
'F' => self.sheeran(), 'F' => self.sheeran(),
'J' => self.cmd("toggle_logview", .{}), 'J' => self.cmd("toggle_panel", .{}),
'Q' => self.cmd("quit", .{}), 'Q' => self.cmd("quit", .{}),
'W' => self.cmd("quit", .{}), 'W' => self.cmd("quit", .{}),
'O' => self.cmd("enter_open_file_mode", .{}), 'O' => self.cmd("enter_open_file_mode", .{}),
@ -70,7 +70,7 @@ fn mapPress(self: *Self, keypress: u32, modifiers: u32) tp.result {
'Q' => self.cmd("quit_without_saving", .{}), 'Q' => self.cmd("quit_without_saving", .{}),
'R' => self.cmd("restart", .{}), 'R' => self.cmd("restart", .{}),
'F' => self.cmd("enter_find_in_files_mode", .{}), 'F' => self.cmd("enter_find_in_files_mode", .{}),
'L' => self.cmd_async("toggle_logview"), 'L' => self.cmd_async("toggle_panel"),
'I' => self.cmd_async("toggle_inputview"), 'I' => self.cmd_async("toggle_inputview"),
'/' => self.cmd("open_help", .{}), '/' => self.cmd("open_help", .{}),
else => {}, else => {},
@ -80,7 +80,7 @@ fn mapPress(self: *Self, keypress: u32, modifiers: u32) tp.result {
else => {}, else => {},
}, },
mod.ALT => switch (keynormal) { mod.ALT => switch (keynormal) {
'L' => self.cmd("toggle_logview", .{}), 'L' => self.cmd("toggle_panel", .{}),
'I' => self.cmd("toggle_inputview", .{}), 'I' => self.cmd("toggle_inputview", .{}),
key.LEFT => self.cmd("jump_back", .{}), key.LEFT => self.cmd("jump_back", .{}),
key.RIGHT => self.cmd("jump_forward", .{}), key.RIGHT => self.cmd("jump_forward", .{}),
@ -99,7 +99,7 @@ fn mapPress(self: *Self, keypress: u32, modifiers: u32) tp.result {
key.F06 => self.cmd("open_config", .{}), key.F06 => self.cmd("open_config", .{}),
key.F09 => self.cmd("theme_prev", .{}), key.F09 => self.cmd("theme_prev", .{}),
key.F10 => self.cmd("theme_next", .{}), key.F10 => self.cmd("theme_next", .{}),
key.F11 => self.cmd("toggle_logview", .{}), key.F11 => self.cmd("toggle_panel", .{}),
key.F12 => self.cmd("toggle_inputview", .{}), key.F12 => self.cmd("toggle_inputview", .{}),
key.UP => self.cmd("home_menu_up", .{}), key.UP => self.cmd("home_menu_up", .{}),
key.DOWN => self.cmd("home_menu_down", .{}), key.DOWN => self.cmd("home_menu_down", .{}),
@ -148,5 +148,5 @@ const hints = tui.KeybindHints.initComptime(.{
.{ "theme_next", "F10" }, .{ "theme_next", "F10" },
.{ "theme_prev", "F9" }, .{ "theme_prev", "F9" },
.{ "toggle_inputview", "F12, A-i, C-S-i" }, .{ "toggle_inputview", "F12, A-i, C-S-i" },
.{ "toggle_logview", "F11, C-j, A-l, C-S-l" }, .{ "toggle_panel", "F11, C-j, A-l, C-S-l" },
}); });

View file

@ -88,7 +88,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
'E' => self.cmd("open_recent", .{}), 'E' => self.cmd("open_recent", .{}),
'U' => self.cmd("move_scroll_page_up", .{}), 'U' => self.cmd("move_scroll_page_up", .{}),
'D' => self.cmd("move_scroll_page_down", .{}), 'D' => self.cmd("move_scroll_page_down", .{}),
'J' => self.cmd("toggle_logview", .{}), 'J' => self.cmd("toggle_panel", .{}),
'Z' => self.cmd("undo", .{}), 'Z' => self.cmd("undo", .{}),
'Y' => self.cmd("redo", .{}), 'Y' => self.cmd("redo", .{}),
'Q' => self.cmd("quit", .{}), 'Q' => self.cmd("quit", .{}),
@ -201,7 +201,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
key.F07 => self.cmd("dump_current_line", .{}), key.F07 => self.cmd("dump_current_line", .{}),
key.F09 => self.cmd("theme_prev", .{}), key.F09 => self.cmd("theme_prev", .{}),
key.F10 => self.cmd("theme_next", .{}), key.F10 => self.cmd("theme_next", .{}),
key.F11 => self.cmd("toggle_logview", .{}), key.F11 => self.cmd("toggle_panel", .{}),
key.F12 => self.cmd("goto_definition", .{}), key.F12 => self.cmd("goto_definition", .{}),
key.F34 => self.cmd("toggle_whitespace", .{}), // C-F10 key.F34 => self.cmd("toggle_whitespace", .{}), // C-F10
key.F58 => self.cmd("gutter_mode_next", .{}), // A-F10 key.F58 => self.cmd("gutter_mode_next", .{}), // A-F10

View file

@ -95,7 +95,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
'O' => self.cmd("jump_back", .{}), 'O' => self.cmd("jump_back", .{}),
'I' => self.cmd("jump_forward", .{}), 'I' => self.cmd("jump_forward", .{}),
'J' => self.cmd("toggle_logview", .{}), 'J' => self.cmd("toggle_panel", .{}),
'Z' => self.cmd("undo", .{}), 'Z' => self.cmd("undo", .{}),
'Y' => self.cmd("redo", .{}), 'Y' => self.cmd("redo", .{}),
'Q' => self.cmd("quit", .{}), 'Q' => self.cmd("quit", .{}),
@ -221,7 +221,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
key.F07 => self.cmd("dump_current_line", .{}), key.F07 => self.cmd("dump_current_line", .{}),
key.F09 => self.cmd("theme_prev", .{}), key.F09 => self.cmd("theme_prev", .{}),
key.F10 => self.cmd("theme_next", .{}), key.F10 => self.cmd("theme_next", .{}),
key.F11 => self.cmd("toggle_logview", .{}), key.F11 => self.cmd("toggle_panel", .{}),
key.F12 => self.cmd("goto_definition", .{}), key.F12 => self.cmd("goto_definition", .{}),
key.F34 => self.cmd("toggle_whitespace", .{}), // C-F10 key.F34 => self.cmd("toggle_whitespace", .{}), // C-F10
key.F58 => self.cmd("gutter_mode_next", .{}), // A-F10 key.F58 => self.cmd("gutter_mode_next", .{}), // A-F10
@ -595,7 +595,7 @@ const hints = tui.KeybindHints.initComptime(.{
.{ "toggle_input_mode", "F2" }, .{ "toggle_input_mode", "F2" },
.{ "toggle_inputview", "A-i" }, .{ "toggle_inputview", "A-i" },
.{ "toggle_inspector_view", "F5, C-F5, C-S-i" }, .{ "toggle_inspector_view", "F5, C-F5, C-S-i" },
.{ "toggle_logview", "C-j, F11" }, .{ "toggle_panel", "C-j, F11" },
.{ "toggle_whitespace", "C-F10" }, .{ "toggle_whitespace", "C-F10" },
.{ "to_lower", "A-l" }, .{ "to_lower", "A-l" },
.{ "to_upper", "A-u" }, .{ "to_upper", "A-u" },

View file

@ -95,7 +95,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
'O' => self.cmd("jump_back", .{}), 'O' => self.cmd("jump_back", .{}),
'I' => self.cmd("jump_forward", .{}), 'I' => self.cmd("jump_forward", .{}),
'J' => self.cmd("toggle_logview", .{}), 'J' => self.cmd("toggle_panel", .{}),
'Z' => self.cmd("undo", .{}), 'Z' => self.cmd("undo", .{}),
'Y' => self.cmd("redo", .{}), 'Y' => self.cmd("redo", .{}),
'Q' => self.cmd("quit", .{}), 'Q' => self.cmd("quit", .{}),
@ -219,7 +219,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
key.F07 => self.cmd("dump_current_line", .{}), key.F07 => self.cmd("dump_current_line", .{}),
key.F09 => self.cmd("theme_prev", .{}), key.F09 => self.cmd("theme_prev", .{}),
key.F10 => self.cmd("theme_next", .{}), key.F10 => self.cmd("theme_next", .{}),
key.F11 => self.cmd("toggle_logview", .{}), key.F11 => self.cmd("toggle_panel", .{}),
key.F12 => self.cmd("goto_definition", .{}), key.F12 => self.cmd("goto_definition", .{}),
key.F34 => self.cmd("toggle_whitespace", .{}), // C-F10 key.F34 => self.cmd("toggle_whitespace", .{}), // C-F10
key.F58 => self.cmd("gutter_mode_next", .{}), // A-F10 key.F58 => self.cmd("gutter_mode_next", .{}), // A-F10
@ -555,7 +555,7 @@ const hints = tui.KeybindHints.initComptime(.{
.{ "toggle_input_mode", "F2" }, .{ "toggle_input_mode", "F2" },
.{ "toggle_inputview", "A-i" }, .{ "toggle_inputview", "A-i" },
.{ "toggle_inspector_view", "F5, C-F5, C-S-i" }, .{ "toggle_inspector_view", "F5, C-F5, C-S-i" },
.{ "toggle_logview", "C-j, F11" }, .{ "toggle_panel", "C-j, F11" },
.{ "toggle_whitespace", "C-F10" }, .{ "toggle_whitespace", "C-F10" },
.{ "to_lower", "A-l" }, .{ "to_lower", "A-l" },
.{ "to_upper", "A-u" }, .{ "to_upper", "A-u" },

View file

@ -209,7 +209,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
const keynormal = if ('a' <= keypress and keypress <= 'z') keypress - ('a' - 'A') else keypress; const keynormal = if ('a' <= keypress and keypress <= 'z') keypress - ('a' - 'A') else keypress;
return switch (modifiers) { return switch (modifiers) {
mod.CTRL => switch (keynormal) { mod.CTRL => switch (keynormal) {
'J' => self.cmd("toggle_logview", .{}), 'J' => self.cmd("toggle_panel", .{}),
'Q' => self.cmd("quit", .{}), 'Q' => self.cmd("quit", .{}),
'W' => self.cmd("close_file", .{}), 'W' => self.cmd("close_file", .{}),
'P' => self.cmd("command_palette_menu_up", .{}), 'P' => self.cmd("command_palette_menu_up", .{}),
@ -231,7 +231,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
'Q' => self.cmd("quit_without_saving", .{}), 'Q' => self.cmd("quit_without_saving", .{}),
'W' => self.cmd("close_file_without_saving", .{}), 'W' => self.cmd("close_file_without_saving", .{}),
'R' => self.cmd("restart", .{}), 'R' => self.cmd("restart", .{}),
'L' => self.cmd_async("toggle_logview"), 'L' => self.cmd_async("toggle_panel"),
'I' => self.cmd_async("toggle_inputview"), 'I' => self.cmd_async("toggle_inputview"),
else => {}, else => {},
}, },
@ -241,7 +241,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
}, },
mod.ALT => switch (keynormal) { mod.ALT => switch (keynormal) {
'P' => self.cmd("command_palette_menu_up", .{}), 'P' => self.cmd("command_palette_menu_up", .{}),
'L' => self.cmd("toggle_logview", .{}), 'L' => self.cmd("toggle_panel", .{}),
'I' => self.cmd("toggle_inputview", .{}), 'I' => self.cmd("toggle_inputview", .{}),
else => {}, else => {},
}, },
@ -253,7 +253,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
0 => switch (keypress) { 0 => switch (keypress) {
key.F09 => self.cmd("theme_prev", .{}), key.F09 => self.cmd("theme_prev", .{}),
key.F10 => self.cmd("theme_next", .{}), key.F10 => self.cmd("theme_next", .{}),
key.F11 => self.cmd("toggle_logview", .{}), key.F11 => self.cmd("toggle_panel", .{}),
key.F12 => self.cmd("toggle_inputview", .{}), key.F12 => self.cmd("toggle_inputview", .{}),
key.ESC => self.cmd("exit_overlay_mode", .{}), key.ESC => self.cmd("exit_overlay_mode", .{}),
key.UP => self.cmd("command_palette_menu_up", .{}), key.UP => self.cmd("command_palette_menu_up", .{}),

View file

@ -229,7 +229,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
const keynormal = if ('a' <= keypress and keypress <= 'z') keypress - ('a' - 'A') else keypress; const keynormal = if ('a' <= keypress and keypress <= 'z') keypress - ('a' - 'A') else keypress;
return switch (modifiers) { return switch (modifiers) {
mod.CTRL => switch (keynormal) { mod.CTRL => switch (keynormal) {
'J' => self.cmd("toggle_logview", .{}), 'J' => self.cmd("toggle_panel", .{}),
'Q' => self.cmd("quit", .{}), 'Q' => self.cmd("quit", .{}),
'W' => self.cmd("close_file", .{}), 'W' => self.cmd("close_file", .{}),
'E' => self.cmd("open_recent_menu_down", .{}), 'E' => self.cmd("open_recent_menu_down", .{}),
@ -249,13 +249,13 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
'Q' => self.cmd("quit_without_saving", .{}), 'Q' => self.cmd("quit_without_saving", .{}),
'W' => self.cmd("close_file_without_saving", .{}), 'W' => self.cmd("close_file_without_saving", .{}),
'R' => self.cmd("restart", .{}), 'R' => self.cmd("restart", .{}),
'L' => self.cmd_async("toggle_logview"), 'L' => self.cmd_async("toggle_panel"),
'I' => self.cmd_async("toggle_inputview"), 'I' => self.cmd_async("toggle_inputview"),
'E' => self.cmd("open_recent_menu_up", .{}), 'E' => self.cmd("open_recent_menu_up", .{}),
else => {}, else => {},
}, },
mod.ALT => switch (keynormal) { mod.ALT => switch (keynormal) {
'L' => self.cmd("toggle_logview", .{}), 'L' => self.cmd("toggle_panel", .{}),
'I' => self.cmd("toggle_inputview", .{}), 'I' => self.cmd("toggle_inputview", .{}),
else => {}, else => {},
}, },
@ -267,7 +267,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
0 => switch (keypress) { 0 => switch (keypress) {
key.F09 => self.cmd("theme_prev", .{}), key.F09 => self.cmd("theme_prev", .{}),
key.F10 => self.cmd("theme_next", .{}), key.F10 => self.cmd("theme_next", .{}),
key.F11 => self.cmd("toggle_logview", .{}), key.F11 => self.cmd("toggle_panel", .{}),
key.F12 => self.cmd("toggle_inputview", .{}), key.F12 => self.cmd("toggle_inputview", .{}),
key.ESC => self.cmd("exit_overlay_mode", .{}), key.ESC => self.cmd("exit_overlay_mode", .{}),
key.UP => self.cmd("open_recent_menu_up", .{}), key.UP => self.cmd("open_recent_menu_up", .{}),