Skip to content

hawk0120/turtles

Repository files navigation

🐢 turtles

A terminal-based file manager built with Kotlin, Mosaic, and Mordant.

Features

  • Terminal UI — keyboard and mouse-driven file browser with color-coded display
  • File Operations — copy, move, delete, trash, rename, create, duplicate, paste
  • Visual Mode — multi-file selection with <Space> and v
  • Search — incremental file search
  • Drag & Drop — mouse-based drag overlay with operation status
  • Preview Panel — auto-loading file previews and metadata
  • Hidden Files — toggle with .
  • SGR Mouse — full mouse support (click, scroll, drag)
  • Native Binary — GraalVM native-image build for fast startup

Quick Start

# Run from source (requires JDK 21+)
./gradlew :app:installDist
./app/build/install/app/bin/app

# Build native binary (requires GraalVM 25 JDK + native-image)
./gradlew :app:installDist
export JAVA_HOME=~/.sdkman/candidates/java/25.0.2-graalce
"$JAVA_HOME/bin/native-image" \
  --enable-native-access=ALL-UNNAMED \
  -cp "$(find app/build/install/app/lib -name '*.jar' | tr '\n' ':')" \
  -H:ReflectionConfigurationFiles=app/src/main/resources/META-INF/native-image/turtles/reflect-config.json \
  -H:JNIConfigurationFiles=app/src/main/resources/META-INF/native-image/turtles/jni-config.json \
  -H:ResourceConfigurationFiles=app/src/main/resources/META-INF/native-image/turtles/resource-config.json \
  -H:IncludeResources=".*jnidispatch.*|.*\\.so$|.*\\.dll$|.*\\.dylib$|META-INF/services/.*" \
  --no-fallback \
  turtles.app.MainKt

./app/build/native/nativeCompile/turtles

Key Bindings

Key Action
/ Navigate
Enter Open directory
c Copy selected
x Cut selected
p Paste
d Delete selected
v Toggle visual mode
Space Toggle selection
. Toggle hidden files
/ Search
q / Ctrl+C Quit

Build

Requires JDK 21+ for compilation (JDK 21 GraalCE recommended). Native binary build requires GraalVM 25 JDK with native-image tool installed.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages