gc

module
v0.0.0-...-33a67f8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2026 License: GPL-3.0

README

Rekunov Commander

Go Go Report Card

A TUI file browser built with Go using the Bubble Tea framework. Norton Commander inspired.

Features

  • Interactive table view for directory contents
  • Dialog windows (info, input) with blocking API
  • CSS-based theming (Norton Commander classic theme included)
  • Window manager with z-index, drag-to-move, drag-to-resize, and focus management

Quick Start

# Build and run
go run ./cmd/commander

# Run the window manager example
go run ./cmd/wm-example

CSS Theming

Styles are defined in internal/config/styles.css and embedded at build time. To override, place a styles.css file in the working directory.

Supported CSS properties:

Property Maps to
color Foreground color
background-color Background color
padding Padding (top right bottom left)
margin Margin (top right bottom left)
border-style rounded, double, thick, hidden, normal
border-color Border foreground color
text-decoration underline

Selectors: .button, .active-button, .pressed-button, .dialog-box, .text, .input, .table

Window Manager

The wm package (internal/ui/widgets/wm) provides a compositing window manager for Bubble Tea applications.

manager := wm.New()
manager.SetSize(width, height)

// Add a window with content, title, position, and size.
id := manager.Add(myTeaModel, "My Window", x, y, w, h)

// Programmatic control.
manager.Move(id, newX, newY)
manager.Resize(id, newW, newH)
manager.Focus(id)
manager.SetZIndex(id, 10)
manager.Remove(id)

Mouse interactions:

  • Click title bar + drag to move
  • Click bottom-right grip (◢) + drag to resize
  • Click any window to bring to front and focus

Keyboard input is routed only to the focused window.

Architecture

cmd/
  commander/          Entry point
  wm-example/         Window manager demo
internal/
  app/                Core application logic + interfaces
  config/             CSS-based Lipgloss theme system
  connectors/         Data source implementations (filesystem)
  ui/                 Bubble Tea UI layer
    widgets/
      wm/             Window manager (z-index, move, resize)
      mainform/       Main form container
      panel/          Table view widget
      dialogs/        Info and Input dialogs
      button/         Button widget

Controls

Key Action
F10 Quit
Tab Cycle window focus (wm-example)
Arrow keys Navigate tables/lists
Enter Confirm / submit

Directories

Path Synopsis
cmd
commander command
wm-example command
internal
app
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL