# jprototerm JavaFX canvas terminal prototype using `jlibghostty` for terminal emulation, Nix for the build environment, and GluonFX/GraalVM Native Image for the Linux binary. ## Build ```sh nix build ``` The package build compiles with Nix-provided OpenJFX 25, `jlibghostty`, JToml, and GraalVM Native Image directly so it does not depend on Gradle plugin resolution inside the Nix sandbox. For development: ```sh nix develop gradle -PjlibghosttyMavenRepo="$JLIBGHOSTTY_MAVEN_REPO" run gradle -PjlibghosttyMavenRepo="$JLIBGHOSTTY_MAVEN_REPO" nativeCompile ``` The Gradle project is kept for interactive development and IDE import. ## Config Configuration is read from: ```text $XDG_CONFIG_HOME/jprototerm/config.toml ``` If `XDG_CONFIG_HOME` is unset, the fallback is: ```text $HOME/.config/jprototerm/config.toml ``` Example, also available in `config.example.toml`: ```toml [terminal] columns = 100 rows = 30 shell = "/bin/bash" font_family = "JetBrainsMono Nerd Font" font_size = 15 [window] width = 1200 height = 760 [kitty_graphics] enabled = true [keybindings] navigate_left = "ALT+H" navigate_down = "ALT+J" navigate_up = "ALT+K" navigate_right = "ALT+L" toggle_floating = "ALT+F" ``` ## Defaults - `Alt+h/j/k/l`: navigate panes - `Alt+f`: open or close a floating pane - Font default: `Symbols Nerd Font Mono` - Kitty graphics protocol parsing is enabled by default