Git Product home page Git Product logo

zsh-magic-dashboard's Introduction

zsh-magic-dashboard

Pressing enter on an empty buffer displays an information-rich and pretty dashboard.

Showcase

Terminal: WezTerm – Theme: Tinacious Design – Font: Iosevka Term with partial ligatures – Prompt: Starship

  • Top: Recent commits (git log)
  • Center: Current Status (hybrid of git status and git diff --stat)
  • Bottom: Files in the current directory (via eza)

Empty components, such as git status in a clean repo, are automatically hidden.

Table of Contents

Installation

Requirements

Manual

Clone this repository somewhere on your machine. This manual assumes you are using ~/.zsh/.

cd ~/.zsh # where to install the plugin
git clone https://github.com/chrisgrieser/zsh-magic-dashboard

Add the following to your ~/.zshrc:

source ~/.zsh/zsh-magic-dashboard/magic_dashboard.zsh

Package Managers

I don't use a package manager, since they are mostly unnecessary and even increasing zsh loading time considerably.

I am open to pull requests adding instructions for package managers, though.

Configuration

Export these variables in your ~/.zshrc. The values displayed are the default.

# Size of the dashboard
export MAGIC_DASHBOARD_GITLOG_LINES=5
export MAGIC_DASHBOARD_FILES_LINES=6

# Disable dashboard in low terminal windows. 
# (Useful for tmux or for terminals embedded in your IDE.)
export MAGIC_DASHBOARD_DISABLED_BELOW_TERM_HEIGHT=15

# Make commit hashes & files clickable. Requires `git-delta`.
export MAGIC_DASHBOARD_USE_HYPERLINKS=0 # set to `1` to enable

Usage

Just press enter on an empty buffer. That's it!

Other Usages

The dashboard call also be called via _magic_dashboard. One use case would be to modify your cd command to display the dashboard after the directory change.

function cd {
	builtin cd "$@" && _magic_dashboard
}

The pretty git log is available independently via _gitlog and accepts the same arguments as git log, for example:

# display the last ten log entry
_gitlog -n10

# call via git's core.pager, like git log
_gitlog
alias gl='_gitlog'

# Can also be piped to `fzf`. (Use the _gitlog-specific option `--no-graph` to
# disable the graph, which messes up a lot of fzf-related things.)
selected_hash=$(_gitlog --no-graph | fzf --ansi --no-sort | cut -d' ' -f1)

Credits

This plugin is based on Magic Enter by @dufferzafar.

About me
In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch.

Profiles

Buy Me a Coffee at ko-fi.com

zsh-magic-dashboard's People

Contributors

chrisgrieser avatar deathb4defeat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

zsh-magic-dashboard's Issues

tab completion problems in some senarios

When using tab completion sometimes the _list_files function gets called and pastes itself into the prompt. Completely destroying the readability of the prompt.

Renaming this function fixes the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.