файловый менеджер
Find a file
2026-05-15 09:45:24 +03:00
.github/workflows feat: unified install script, RPM packaging, bump to v0.2.6 2026-05-15 09:45:24 +03:00
cmd/vcom SSH connection status indicators 2026-04-29 03:11:53 +03:00
docs Add additional screenshots to README 2026-04-24 14:06:27 +03:00
internal feat: unified install script, RPM packaging, bump to v0.2.6 2026-05-15 09:45:24 +03:00
plans feat: theme selector dialog with live preview (t key) 2026-04-29 16:13:29 +03:00
scripts feat: unified install script, RPM packaging, bump to v0.2.6 2026-05-15 09:45:24 +03:00
src fix: use Recommends instead of Depends for ueberzugpp in deb, add Ubuntu install guide 2026-05-13 13:47:38 +03:00
vendor SSH connection status indicators 2026-04-29 03:11:53 +03:00
.codex Initial vcom TUI prototype 2026-04-22 22:10:50 +03:00
.gitignore Add packaging and release automation 2026-04-23 00:21:36 +03:00
flake.lock Add flake lock file 2026-04-23 00:37:11 +03:00
flake.nix feat: unified install script, RPM packaging, bump to v0.2.6 2026-05-15 09:45:24 +03:00
go.mod SSH connection status indicators 2026-04-29 03:11:53 +03:00
go.sum SSH connection status indicators 2026-04-29 03:11:53 +03:00
LICENSE Initial commit 2026-04-22 22:09:10 +03:00
PKGBUILD feat: unified install script, RPM packaging, bump to v0.2.6 2026-05-15 09:45:24 +03:00
README.md feat: unified install script, RPM packaging, bump to v0.2.6 2026-05-15 09:45:24 +03:00
vcom-0.2.5-1-x86_64.pkg.tar.zst fix: use Recommends instead of Depends for ueberzugpp in deb, add Ubuntu install guide 2026-05-13 13:47:38 +03:00
vcom-0.2.5.tar.gz fix: use Recommends instead of Depends for ueberzugpp in deb, add Ubuntu install guide 2026-05-13 13:47:38 +03:00
vcom.toml feat: auto-refresh directory listing, enabled by default every 5s 2026-05-04 01:07:22 +03:00

vcom

vcom is a two-pane terminal file manager with a fast built-in info/preview panel for the active selection.

Why vcom

  • Two-pane workflow focused on keyboard speed
  • Built-in preview/info pane for the active selection
  • Asynchronous copy/move with progress and background mode
  • Theme support and configurable layout/columns

Screenshots

vcom screenshot vcom screenshot 2 vcom screenshot 3

Quick install

curl -fsSL https://raw.githubusercontent.com/vrubelroman/vcom/main/scripts/install.sh | bash

This single command installs vcom with Nerd Font and image preview support on any Linux distribution.

Build and run

Run directly:

go run ./cmd/vcom

Build local binary:

go build -o vcom ./cmd/vcom

Installation

NixOS / Nix

Run directly from the flake:

nix run github:vrubelroman/vcom?ref=v0.2.6

Install into user profile:

nix profile add github:vrubelroman/vcom?ref=v0.2.6

The Nix package wraps vcom with ueberzugpp in PATH, so image preview works in non-kitty terminals out of the box.

Debian / Ubuntu

Download and install the latest release:

curl -sL https://github.com/vrubelroman/vcom/releases/download/v0.2.6/vcom_0.2.6_amd64.deb -o /tmp/vcom_0.2.6_amd64.deb
sudo apt install /tmp/vcom_0.2.6_amd64.deb

The Debian package recommends ueberzugpp for image preview outside kitty (optional). To install it:

sudo apt install pipx && pipx ensurepath && pipx install ueberzugpp

Arch Linux

A PKGBUILD is included in the repository:

makepkg -si

The Arch package depends on ueberzugpp, so non-kitty image preview is installed together with vcom.

Fedora / RHEL

Download and install the latest RPM:

curl -sL https://github.com/vrubelroman/vcom/releases/download/v0.2.6/vcom-0.2.6-1.x86_64.rpm -o /tmp/vcom.rpm
sudo dnf install /tmp/vcom.rpm

Or on RHEL/CentOS:

sudo rpm -ivh /tmp/vcom.rpm

The RPM package recommends ueberzugpp for image preview outside kitty (optional):

sudo dnf install ueberzugpp

Font requirement (icons)

For file icons, vcom expects a Nerd Font in your terminal profile.

Default behavior is ui.icon_mode = "auto":

  • if a Nerd Font is detected, vcom uses Nerd icons
  • if not, vcom falls back to ASCII icons automatically

You can force behavior in config:

  • ui.icon_mode = "nerd": always use Nerd icons
  • ui.icon_mode = "ascii": always use ASCII icons

Installing a Nerd Font

Ubuntu / Debian:

wget -qO /tmp/JetBrainsMono.zip https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd
unzip -o /tmp/JetBrainsMono.zip -d ~/.local/share/fonts/JetBrainsMonoNerd
fc-cache -fv

Arch Linux:

sudo pacman -S ttf-jetbrains-mono-nerd

Or via AUR helper:

yay -S nerd-fonts-jetbrains-mono

NixOS / Nix:

Add to your /etc/nixos/configuration.nix:

fonts.packages = with pkgs; [ nerd-fonts.jetbrains-mono ];

Or install imperatively:

nix profile install nixpkgs#nerd-fonts.jetbrains-mono

Configuring terminal to use the installed Nerd Font

After installing, set JetBrainsMono Nerd Font (or another Nerd Font) as the terminal font:

  • GNOME Terminal: Preferences → Profile → Text → Custom font → choose JetBrainsMono Nerd Font
  • Konsole: Settings → Edit Current Profile → Appearance → choose a Nerd Font profile
  • Alacritty: set font.normal.family: "JetBrainsMono Nerd Font" in ~/.config/alacritty/alacritty.yml
  • Kitty: set font_family JetBrainsMono Nerd Font in ~/.config/kitty/kitty.conf
  • Foot: set font=JetBrainsMono Nerd Font:size=11 in ~/.config/foot/foot.ini
  • WezTerm: set font = wezterm.font("JetBrainsMono Nerd Font") in ~/.config/wezterm/wezterm.lua
  • Windows Terminal: Settings → Profiles → Defaults → Appearance → Font face → choose JetBrainsMono Nerd Font

Preview mode (F9 / i) temporarily replaces the inactive pane and shows:

  • directory listing preview
  • text file preview with syntax highlighting
  • image metadata (format + dimensions)
  • safe fallback for binary files

Configuration

Optional config lookup order:

  1. -config /path/to/vcom.toml
  2. ./vcom.toml
  3. ./config/vcom.toml
  4. $XDG_CONFIG_HOME/vcom/vcom.toml
  5. ~/.config/vcom/vcom.toml

Reference config: vcom.toml

Icon mode example:

[ui]
icon_mode = "auto" # auto | nerd | ascii

Themes

Built-in themes (press t to open theme selector or set ui.theme in config):

  • catppuccin-mocha (default)
  • catppuccin-macchiato
  • catppuccin-lavender
  • tokyo-night
  • gruvbox-dark
  • nord
  • one-dark
  • everforest
  • github-dark
  • ayu-dark
  • breeze
  • cyberpunk
  • dracula
  • eldritch
  • kanagawa
  • kanagawa-paper
  • rose-pine
  • solarized-dark
  • vesper

Releases

Pushing a tag like v0.2.6 triggers GitHub Actions release workflow (.github/workflows/release.yml) which:

  • runs tests
  • vendors Go modules
  • builds release binary
  • builds Debian package
  • builds RPM package
  • publishes release assets

Release artifacts:

  • vcom-v0.2.6-x86_64-unknown-linux-gnu.tar.gz
  • vcom_0.2.6_amd64.deb
  • vcom-0.2.6-1.x86_64.rpm
  • vcom-v0.2.6-checksums.txt

Notes

  • File creation time depends on filesystem/OS support; unavailable values are shown as n/a.

Architecture notes: docs/architecture.md