файловый менеджер
Find a file
vrubelroman e4514028ef
All checks were successful
CI / test (push) Successful in 9m41s
fix: PKGBUILD pkgver was still pinned to 0.2.6
grep for the version bump missed this file since it has no extension.
makepkg pulls sources from the tag named after pkgver, so Arch builds
were still fetching v0.2.6 despite main/the v0.2.7 tag being current.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 21:14:47 +00:00
.github/workflows fix: harden copy/move/delete transfers, add CI, dead code cleanup 2026-07-03 20:36:00 +00: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 chore: bump version to v0.2.7 2026-07-03 21:06:34 +00: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
vendor fix: verify SSH host keys, support ssh-agent, fix remote dir walk bugs 2026-07-03 15:31:32 +00: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 fix: verify SSH host keys, support ssh-agent, fix remote dir walk bugs 2026-07-03 15:31:32 +00:00
go.sum fix: verify SSH host keys, support ssh-agent, fix remote dir walk bugs 2026-07-03 15:31:32 +00:00
LICENSE Initial commit 2026-04-22 22:09:10 +03:00
PKGBUILD fix: PKGBUILD pkgver was still pinned to 0.2.6 2026-07-03 21:14:47 +00:00
README.md chore: bump version to v0.2.7 2026-07-03 21:06:34 +00: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.7

Install into user profile:

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

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.7/vcom_0.2.7_amd64.deb -o /tmp/vcom_0.2.7_amd64.deb
sudo apt install /tmp/vcom_0.2.7_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.7/vcom-0.2.7-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.7 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.7-x86_64-unknown-linux-gnu.tar.gz
  • vcom_0.2.7_amd64.deb
  • vcom-0.2.7-1.x86_64.rpm
  • vcom-v0.2.7-checksums.txt

Notes

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

Architecture notes: docs/architecture.md