All Projects → brianp → muxed

brianp / muxed

Licence: MIT license
Another TMUX project manager

Programming Languages

rust
11053 projects
Dockerfile
14818 projects
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to muxed

dotfiles
Dotfiles for Neovim (0.7+), Fish shell, git, Kitty, tmux, and more.
Stars: ✭ 54 (-6.9%)
Mutual labels:  tmux, tmux-configs, tmux-configuration
nested-tmux
A simple tmux configuration for nested tmux sessions
Stars: ✭ 66 (+13.79%)
Mutual labels:  tmux, tmux-configs, tmux-configuration
.tmux
🇫🇷 Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❤️
Stars: ✭ 15,594 (+26786.21%)
Mutual labels:  tmux, screen, tmux-configuration
dotfiles
shell, git, vim, tmux .etc dotfiles, managed via gnu stow
Stars: ✭ 20 (-65.52%)
Mutual labels:  tmux, tmux-configs
tummy
Use a Tmuxfile with your tmux configuration to easily manage sessions
Stars: ✭ 54 (-6.9%)
Mutual labels:  tmux, tmux-configuration
Vue Screen
Reactive screen size and media query states for VueJS
Stars: ✭ 120 (+106.9%)
Mutual labels:  screen, window
dotfiles
🍀 My dotfiles macOS / Linux (Ubuntu, Arch) / Android
Stars: ✭ 16 (-72.41%)
Mutual labels:  tmux, tmux-configs
dotfiles
NeoVim + git + zsh + tmux bliss
Stars: ✭ 19 (-67.24%)
Mutual labels:  tmux, tmux-configs
dotfiles
❤ ~/.🛠🐈 the daily jam 🍞🥜🍇🍞
Stars: ✭ 55 (-5.17%)
Mutual labels:  tmux, tmux-configuration
Dotfiles
i3 + Plasma: using the i3 window manager on the top of KDE Plasma and other dotfiles, configurations, scripts, workarounds and practises from my Debian Sid machines.
Stars: ✭ 651 (+1022.41%)
Mutual labels:  tmux, window-manager
tmux.nvim
tmux integration for nvim features pane movement and resizing from within nvim.
Stars: ✭ 299 (+415.52%)
Mutual labels:  tmux, tmux-configuration
eseed-window
A minimal cross-platform C++17 window management library for rendering (deprecated)
Stars: ✭ 18 (-68.97%)
Mutual labels:  window-manager, window
tmux-slay
TMUX script to run commands in a background session. Similar to abduco/dtach.
Stars: ✭ 18 (-68.97%)
Mutual labels:  tmux, screen
.dotfiles
💻 My settings for macOS, kitty, zsh, nvim, tmux, and more 🛠
Stars: ✭ 44 (-24.14%)
Mutual labels:  tmux, tmux-configuration
Dotfiles
vim, zsh, git, homebrew, nvm, neovim - my whole world
Stars: ✭ 2,217 (+3722.41%)
Mutual labels:  tmux, tmux-configuration
tmux-conf
📝 TMUX Configuration for nerds with tpm
Stars: ✭ 31 (-46.55%)
Mutual labels:  tmux, screen
dotfiles
Configuration settings for my terminal
Stars: ✭ 30 (-48.28%)
Mutual labels:  tmux
tmux-menus
Tmux plugin, Popup menus to help with managing your environment
Stars: ✭ 124 (+113.79%)
Mutual labels:  tmux
dotfiles
My OSX / Linux tools and configurations
Stars: ✭ 35 (-39.66%)
Mutual labels:  tmux
qtile-config
My qtile config
Stars: ✭ 47 (-18.97%)
Mutual labels:  window-manager

Muxed - “Another TMUX project manager”

Build Status

Drop muxed in to your $PATH and take it for a spin. Happy to receive feature requests or bug reports!

Muxed

Muxed: Provides the functionality for creating, opening and parsing your project configs to launch a TMUX session.

Snapshot: Experimental : Create a config file based on a running tmux session.

Installation

Download a release:

See the releases page for muxed packages. Download and untar the package as desired. Make sure the bin is somewhere in your $PATH. I generally move the bins in to /usr/local/bin.

$ tar -xvzf muxed-VERSION-SYSTEM.tar.gz
x muxed
$ mv muxed /usr/local/bin
$ muxed --help
$ muxed my_new_project

From Homebrew taps

This will add a tap to install a pre-compiled Muxed bin.

$ brew tap brianp/homebrew-muxed
$ brew install muxed_bin

For development

With Docker

Docker commands are long so I use a make file that points all the commands to a runing docker container.

$ git clone [email protected]:brianp/muxed.git
$ export MUXED_ENV=nix
$ make build
$ make start
$ make cargo cmd='test --workspace --color=always'

From source:

Have rust stable installed. Clone this repo. Then run cargo to build the source, and again use cargo to run the app.

$ git clone [email protected]:brianp/muxed.git
$ cargo build
$ cargo run -- --help
$ cargo test --workspace --color=always

Setup

1. Create a new project file.

If this is your first run, muxed will create the ~/.muxed/ directory for you.

$ muxed new my_project
Looks like this is your first time here. Muxed could't find the configuration directory: `/root/.muxed`
Creating that now 👌

✌ The template file my_project.yml has been written to /root/.muxed
Happy tmuxing!

The generated template will look like this (but with some inline docs):

root: "~/"
windows:
  - editor:
      layout: "main-vertical"
      panes: ["vi", "ls -alh"]
  - processes: "ls /proc"
  - logs: "tail -f /var/log/dmesg"

This config will create a new tmux session with three windows named editor, processes and logs. By default your view will be on the first window opened, on the first pane, which in this case is vi in the editor window. The first window will have two panes split vertically, the left will have the editor vi running and the right will have a shell listing of your current working directory.

2. Edit your template

Now you can use your favourite editor and make changes to the config as desired. This makes the assumption you have an $EDITOR env var set.

$ muxed edit my_project

3. Open TMUX with your muxed config

$ muxed my_project

Usage Options

Usage:
    muxed (list | ls)
    muxed [flags] [options] <project>
    muxed edit [options] <project>
    muxed load [flags] [options] <project>
    muxed new [flags] [options] <project>
    muxed snapshot [flags] [options] <project>
    muxed (-h | --help)
    muxed (-v | --version)

Flags:
    -d                  If you want to create a muxed session without connecting to it
    -f                  Overwrite existing file if one exists
    --debug             Prints debug information while executing (project opening only)
    -h, --help          Prints help information
    -v, --version       Prints version information

Options:
    -p <project_dir>    The directory your project config files live in. Defaults to ~/.muxed/
    -t <session>        The name of the running TMUX session to codify

Args:
    <project>           The name of your project to open

Subcommands:
    list                             List the availiable project configs
    edit <project>                   Edit an existing project file
    load <project>                   Load the specified project, this is the default command
    new <project>                    To create a new project file
    snapshot -t <session> <project>  Capture a running session and create a config file for it

Inspiration

This project has been inspired by the work done on the tmuxinator project. Check it out for a ruby based tmux session management solution.

Copyright

Copyright (c) 2014-2020 Brian Pearce. See LICENSE for further details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].