ZacharyZcR 303386806f feat: Add drag-and-drop split screen functionality for tabs
Implements intuitive drag-and-drop split screen feature for tabs:

Core Functionality:
- Drag a splittable tab (Terminal, File Manager, or Server) onto another splittable tab
- Automatically triggers split screen mode for the dragged tab
- Target tab becomes the active focused tab
- Works alongside existing tab reordering drag-and-drop

Visual Feedback:
- Valid drop targets show blue border (border-blue-400/50) when dragging begins
- Hovered drop target shows enhanced highlight with blue ring and background
- Clear visual distinction between reorder drag vs split screen drop
- Smooth transitions and hover states

Smart Detection:
- Only allows split screen between compatible tab types (terminal/server/file_manager)
- Prevents splitting onto tabs already in split screen mode
- Respects 3-tab split screen limit
- Automatically falls back to reorder if dropped between tabs instead of on a tab

Implementation Details:
- Added hoverTabIndex to dragState to track which tab is being hovered
- New findHoveredTab() function detects mouse position over tabs
- Modified handleDrop() to prioritize split screen over reorder
- Added isValidDropTarget and isHoveredDropTarget props to Tab component
- Updated Tab.tsx styles with conditional classes for drop target states

User Experience:
- Drag tab to empty space between tabs = reorder (existing behavior)
- Drag tab directly onto another tab = split screen (new behavior)
- Visual feedback guides user to valid drop targets
- Seamless integration with existing tab management
2025-11-09 17:45:44 +08:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-10-01 15:40:10 -05:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-10-03 00:02:10 -05:00
2025-09-12 14:42:00 -05:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-09-12 14:42:00 -05:00
2025-11-05 10:36:16 -06:00
2025-08-07 02:20:27 -05:00
2025-09-12 14:42:00 -05:00
2025-11-06 00:20:38 -06:00
2025-11-05 10:36:16 -06:00
2025-11-05 10:36:16 -06:00
2025-10-12 01:33:30 -05:00
2025-09-12 14:42:00 -05:00
2025-09-12 14:42:00 -05:00
2025-11-05 10:36:16 -06:00

Repo Stats

English English | 中文 中文

GitHub Repo stars GitHub forks GitHub Release Discord

Repo of the Day Achievement
Achieved on September 1st, 2025

Top Technologies

React Badge TypeScript Badge Node.js Badge Vite Badge Tailwind CSS Badge Docker Badge SQLite Badge Radix UI Badge


Termix Banner

If you would like, you can support the project here!
GitHub Sponsor

Overview

Termix Banner

Termix is an open-source, forever-free, self-hosted all-in-one server management platform. It provides a multi-platform solution for managing your servers and infrastructure through a single, intuitive interface. Termix offers SSH terminal access, SSH tunneling capabilities, and remote file management, with many more tools to come. Termix is the perfect free and self-hosted alternative to Termius available for all platforms.

Features

  • SSH Terminal Access - Full-featured terminal with split-screen support (up to 4 panels) with a browser-like tab system. Includes support for customizing the terminal including common terminal themes, fonts, and other components
  • SSH Tunnel Management - Create and manage SSH tunnels with automatic reconnection and health monitoring
  • Remote File Manager - Manage files directly on remote servers with support for viewing and editing code, images, audio, and video. Upload, download, rename, delete, and move files seamlessly
  • SSH Host Manager - Save, organize, and manage your SSH connections with tags and folders, and easily save reusable login info while being able to automate the deployment of SSH keys
  • Server Stats - View CPU, memory, and disk usage along with network, uptime, and system information on any SSH server
  • Dashboard - View server information at a glance on your dashboard
  • User Authentication - Secure user management with admin controls and OIDC and 2FA (TOTP) support. View active user sessions across all platforms and revoke permissions.
  • Database Encryption - Backend stored as encrypted SQLite database files
  • Data Export/Import - Export and import SSH hosts, credentials, and file manager data
  • Automatic SSL Setup - Built-in SSL certificate generation and management with HTTPS redirects
  • Modern UI - Clean desktop/mobile-friendly interface built with React, Tailwind CSS, and Shadcn
  • Languages - Built-in support for English, Chinese, German, and Portuguese
  • Platform Support - Available as a web app, desktop application (Windows, Linux, and macOS), and dedicated mobile/tablet app for iOS and Android.
  • SSH Tools - Create reusable command snippets that execute with a single click. Run one command simultaneously across multiple open terminals.

Planned Features

See Projects for all planned features. If you are looking to contribute, see Contributing.

Installation

Supported Devices:

  • Website (any modern browser on any platform like Chrome, Safari, and Firefox)
  • Windows (x64/ia32)
    • Portable
    • MSI Installer
    • Chocolatey Package Manager
  • Linux (x64/ia32)
    • Portable
    • AppImage
    • Deb
    • Flatpak
  • macOS (x64/ia32 on v12.0+)
    • Apple App Store
    • DMG
    • Homebrew
  • iOS/iPadOS (v15.1+)
    • Apple App Store
    • ISO
  • Android (v7.0+)
    • Google Play Store
    • APK

Visit the Termix Docs for more information on how to install Termix on all platforms. Otherwise, view a sample Docker Compose file here:

services:
  termix:
    image: ghcr.io/lukegus/termix:latest
    container_name: termix
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - termix-data:/app/data
    environment:
      PORT: "8080"

volumes:
  termix-data:
    driver: local

Support

If you need help or want to request a feature with Termix, visit the Issues page, log in, and press New Issue. Please be as detailed as possible in your issue, preferably written in English. You can also join the Discord server and visit the support channel, however, response times may be longer.

Show-off

Termix Demo 1 Termix Demo 2

Termix Demo 3 Termix Demo 4

Termix Demo 5 Termix Demo 6

Termix Demo 7

Videos and images may be out of date.

License

Distributed under the Apache License Version 2.0. See LICENSE for more information.

Description
Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities.
Readme 462 MiB
2026-01-01 04:20:12 +00:00
Languages
TypeScript 98.4%
JavaScript 0.8%
CSS 0.3%
Shell 0.3%