All Projects โ†’ arl โ†’ Gitmux

arl / Gitmux

Licence: mit
๐Ÿ’ป Git in your tmux status bar

Programming Languages

go
31211 projects - #10 most used programming language
bash
514 projects

Projects that are alternatives of or similar to Gitmux

Fzf
๐ŸŒธ A command-line fuzzy finder
Stars: โœญ 40,965 (+22658.33%)
Mutual labels:  cli, zsh, tmux, fish
G
Simple go version manager, gluten-free
Stars: โœญ 307 (+70.56%)
Mutual labels:  cli, zsh, fish
config
Fig's integrations with bash, zsh, fish, ssh, and tmux. Also contains Fig's installation and update scripts. Finally, this repo is the root of the .fig folder that is installed on your computer when you download Fig!
Stars: โœญ 44 (-75.56%)
Mutual labels:  zsh, tmux, fish
Gh
Easily manage your local git repos
Stars: โœญ 156 (-13.33%)
Mutual labels:  cli, zsh, fish
Zoxide
A smarter cd command. Supports all major shells.
Stars: โœญ 4,422 (+2356.67%)
Mutual labels:  cli, zsh, fish
Awesome Shell
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Stars: โœญ 22,631 (+12472.78%)
Mutual labels:  cli, zsh, fish
Autocomplete
Autocomplete for terminals on MacOS
Stars: โœญ 569 (+216.11%)
Mutual labels:  cli, zsh, fish
Mac Bootstrap
๐Ÿ’ป Provision a new Mac for web development with dotfiles + Fish/Zsh, Neovim, and Tmux
Stars: โœญ 96 (-46.67%)
Mutual labels:  zsh, tmux, fish
Forgit
๐Ÿ’ค A utility tool powered by fzf for using git interactively.
Stars: โœญ 1,823 (+912.78%)
Mutual labels:  cli, zsh, fish
Dotfiles
๐Ÿ’ป Use command line interface manager for macOS configuration.
Stars: โœญ 97 (-46.11%)
Mutual labels:  cli, zsh, tmux
Powerline
Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile.
Stars: โœญ 12,989 (+7116.11%)
Mutual labels:  zsh, tmux, fish
Dotfiles
If there is a shell, there is a way!
Stars: โœญ 112 (-37.78%)
Mutual labels:  zsh, tmux, fish
Kafkactl
Command Line Tool for managing Apache Kafka
Stars: โœญ 177 (-1.67%)
Mutual labels:  cli, zsh, fish
Up
Quickly navigate to a parent directory via tab-completion.
Stars: โœญ 126 (-30%)
Mutual labels:  zsh, fish
Dotfiles
My dotfiles
Stars: โœญ 127 (-29.44%)
Mutual labels:  zsh, tmux
Setup
Setup a new machine without sudo!
Stars: โœญ 130 (-27.78%)
Mutual labels:  zsh, tmux
Nord Xfce Terminal
An arctic, north-bluish clean and elegant Xfce Terminal color theme.
Stars: โœญ 136 (-24.44%)
Mutual labels:  cli, zsh
Xxh
๐Ÿš€ Bring your favorite shell wherever you go through the ssh.
Stars: โœญ 2,559 (+1321.67%)
Mutual labels:  zsh, fish
Dots
Personal *nix configuration files
Stars: โœญ 136 (-24.44%)
Mutual labels:  tmux, fish
Dotfiles
๐Ÿ“ My dotfiles for macOS using Fish/Zsh, Neovim, and Tmux
Stars: โœญ 151 (-16.11%)
Mutual labels:  zsh, tmux

Gitmux shows git status in your tmux status bar


travis-ci goreport

demo

  • easy. Install and forget about it
  • minimal. It shows what you need when you need it
  • discrete. Disappears if the current directory is not part of a Git tree
  • shell-independent. Works with all shells bash, zsh, fish, whateversh
  • customizable. Colors, symbols and layout can be customized

Prerequisites

Works with all decently recent tmux versions.

Installing

Binary release

Download the latest binary for your platform/architecture and uncompress it.

From source

Download and install a Go compiler (Go 1.10 or later). Run go get to build and install gitmux:

go get -u github.com/arl/gitmux

Getting started

Add this line to your .tmux.conf:

set -g status-right '#(gitmux "#{pane_current_path}")'

Customizing

gitmux output can be customized via a configuration file in YAML format.

The gitmux configuration file is in YAML format:

tmux:
  symbols:
    branch: 'โŽ‡ '
    hashprefix: ':'
    ahead: โ†‘ยท
    behind: โ†“ยท
    staged: 'โ— '
    conflict: 'โœ– '
    modified: 'โœš '
    untracked: 'โ€ฆ '
    stashed: 'โš‘ '
    clean: โœ”
  styles:
    clear: '#[fg=default]'
    state: '#[fg=red,bold]'
    branch: '#[fg=white,bold]'
    remote: '#[fg=cyan]'
    staged: '#[fg=green,bold]'
    conflict: '#[fg=red,bold]'
    modified: '#[fg=red,bold]'
    untracked: '#[fg=magenta,bold]'
    stashed: '#[fg=cyan,bold]'
    clean: '#[fg=green,bold]'
  layout: [branch, .., remote, ' - ', flags]
  options:
    branch_max_len: 0

First, save the default configuration to a new file:

gitmux -printcfg > .gitmux.conf

Modify the line in .tmux.conf, passing the path of the configuration file as argument to gitmux

gitmux -cfg .gitmux.conf

Open .gitmux.conf and modify it, replacing symbols, styles and layout to suit your needs.

In tmux status bar, gitmux output immediately reflects the changes you make to the configuration.

gitmux configuration is split into 4 sections:

  • symbols: they're just strings of unicode characters
  • styles: tmux format strings
  • layout: list of gitmux layout components, defines the component to show and in their order.
  • options: additional configuration options

Symbols

  symbols:
    branch: 'โŽ‡ '      # shown before `branch`
    hashprefix: ':'    # shown before a Git hash (in 'detached HEAD' state)
    ahead: โ†‘ยท          # shown before 'ahead count' when local/remote branch diverges`
    behind: โ†“ยท         # shown before 'behind count' when local/remote branch diverges`
    staged: 'โ— '       # shown before the 'staged files' count
    conflict: 'โœ– '     # shown before the 'conflicts' count
    modified: 'โœš '     # shown before the 'modified files' count
    untracked: 'โ€ฆ '    # shown before the 'untracked files' count
    stashed: 'โš‘ '      # shown before the 'stash' count
    clean: โœ”           # shown when the working tree is clean

Styles

Styles are tmux format strings used to specify text colors and attributes. See tmux styles reference.

Layout components

This is the list of the possible components of the layout:

Layout component Description Example
branch local branch name master
remote-branch remote branch name origin/master
divergence divergence local/remote branch, if any โ†“ยท2โ†‘ยท1
remote alias for remote-branch followed by divergence origin/master โ†“ยท2โ†‘ยท1
flags Symbols representing the working tree state โœš 1 โš‘ 1 โ€ฆ 2
any string foo Any other string is directly shown foo

Example layouts:

layout: [branch, '..', remote, ' - ', flags]
layout: [branch, '..', remote-flags, divergence, ' - ', flags]
layout: [branch]
layout: [flags, branch]
layout: [flags, ~~~, branch]

Additional options

This is the list of additional configuration options:

Option Description Default
branch_max_len Maximum displayed length for local and remote branch names 0 (no limit)

Troubleshooting

Please report anything by filing an issue.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License: MIT

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].