Skip to content

erikchvac-byte/ATMu

Repository files navigation

ATMu - Unmutable Tmux Dashboard

A locked, immutable 3-pane tmux dashboard that prevents accidental layout modifications.

What is ATMu?

ATMu creates a fixed tmux session where the layout cannot be accidentally changed:

  • Alt+arrow keys won't resize panes
  • Splitting/closing panes is disabled
  • Mouse dragging is disabled
  • Dead panes remain visible with [exited] status

This is a TUI (Terminal User Interface) for maintaining a stable, accident-proof workspace.

Quick Start

Windows (WSL)

# 1. Enable WSL and install Ubuntu
wsl --install

# 2. Inside WSL, install tmux
sudo apt update && sudo apt install -y tmux

# 3. Copy project to WSL
mkdir -p ~/Dev
cp -r /mnt/c/Users/YOUR_USERNAME/Dev/ATMu ~/Dev/

# 4. Run installer
cd ~/Dev/ATMu
chmod +x install.sh
./install.sh

# 5. Launch dashboard
./launch-dashboard.sh

Linux/macOS

# 1. Install tmux
sudo apt install tmux  # Debian/Ubuntu
brew install tmux      # macOS

# 2. Clone/copy the repository
cd ~/Dev
git clone <your-repo> ATMu

# 3. Run installer
cd ATMu
chmod +x install.sh
./install.sh

# 4. Launch dashboard
./launch-dashboard.sh

What You Get

┌──────────────────────────────────────────────┐
│        Banner / Status (20% height)          │
├───────────────────────────────┬──────────────┤
│                               │              │
│      Main Work Area           │   Monitor    │
│      (80% width)              │   (20%)      │
│                               │              │
│      Bottom-left LARGE        │   htop or    │
│                               │   other tool │
│                               │              │
└───────────────────────────────┴──────────────┘

3 panes in a locked layout:

  • Top: Banner/status bar (20% height, full width)
  • Bottom-left: Main working area (80% height, 80% width) - LARGE
  • Bottom-right: System monitor (80% height, 20% width) - Small

Features

  • Accident-proof: Cannot resize/close/split panes with hotkeys
  • Persistent panes: Panes remain visible even after processes exit
  • Mouse disabled: No accidental layout changes from clicking/dragging
  • Admin control: Ctrl+b prefix commands still work for intentional changes
  • Auto-attach: Relaunching attaches to existing session if running

Usage

Launch the Dashboard

cd ~/Dev/ATMu
./launch-dashboard.sh

From Windows, run in WSL:

wsl bash -l -c "cd ~/Dev/ATMu && ./launch-dashboard.sh"

Attach to Running Session

tmux attach -t atmudashboard

Detach (Exit Without Closing)

Press Ctrl+b then d

Kill Session

tmux kill-session -t atmudashboard

Testing Immutability

Once launched, verify the lock features:

Action Command Expected Result
Resize panes Alt+Arrow keys Nothing happens
Split panes Ctrl+b then % or " Disabled
Close pane Ctrl+b then x Disabled
Zoom pane Ctrl+b then z Disabled
Exit process Type exit in pane Pane shows [exited] but remains

Project Structure

ATMu/
├── README.md                    # This file
├── INSTALL.md                   # Detailed installation guide
├── ADR.md                       # Architecture Decision Record
├── CLAUDE.md                    # Project guidance for Claude Code
├── @prd.md                      # Product Requirements Document
├── .tmux.conf.unmutable         # Core immutability config
├── .tmuxinator.yml              # Session layout definition
├── launch-dashboard.sh          # Main launcher script
├── install.sh                   # Automated installer
├── test-dashboard.sh            # Test suite
└── .claude/
    └── pre-compact-checklist.md # ADR update checklist

Configuration Files

After installation, these files are created in your home directory:

  • ~/.tmux.conf.unmutable - Immutability settings
  • ~/.tmuxinator/atmudashboard.yml - Session layout (if using tmuxinator)

Customization

Change Pane Commands

Edit ~/.tmuxinator/atmudashboard.yml:

panes:
  - htop              # Left pane
  - tail -f /var/log  # Top-right
  - watch date        # Bottom-right

Modify Dimensions

Edit .tmuxinator.yml and change the layout string.

Aesthetic Options

Launch without borders:

./launch-dashboard.sh --no-borders

Documentation

  • INSTALL.md - Full installation guide with troubleshooting
  • ADR.md - Architectural decisions and design rationale
  • CLAUDE.md - Development workflow and project context
  • @prd.md - Product requirements and scope

Known Issues

See ADR.md for detailed information:

  1. Configuration loading: Immutability config must be sourced during launch
  2. Terminal size: Pane dimensions depend on actual terminal size
  3. Test scripts: Have bash variable expansion issues when run via wsl bash -c

Requirements

Required:

  • tmux (v3.0+)
  • bash
  • WSL (Windows only)

Optional:

  • tmuxinator (Ruby gem for enhanced session management)

Uninstallation

cd ~/Dev/ATMu
./uninstall.sh

License

Personal project - use as needed.

Contributing

This is a personal productivity tool. Feel free to fork and adapt for your needs.

Support

For issues or questions:

  1. Check INSTALL.md troubleshooting section
  2. Review ADR.md known issues
  3. Check tmux configuration: tmux show-options -g

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages