All Projects → Phundrak → eshell-info-banner.el

Phundrak / eshell-info-banner.el

Licence: GPL-3.0 License
Display some system information when launching Eshell

Programming Languages

emacs lisp
2029 projects

Projects that are alternatives of or similar to eshell-info-banner.el

grammarly
Grammarly API interface
Stars: ✭ 87 (+210.71%)
Mutual labels:  emacs-package
modern-sh
🎸 An Emacs minor mode for editing shell script.
Stars: ✭ 27 (-3.57%)
Mutual labels:  emacs-package
Emacs-LanguageTool.el
LanguageTool suggestions integrated within Emacs
Stars: ✭ 44 (+57.14%)
Mutual labels:  emacs-package
screenshot
Swiftly grab pretty images of your code
Stars: ✭ 158 (+464.29%)
Mutual labels:  emacs-package
siri-shortcuts.el
A set of Emacs commands and functions for interacting with Siri Shortcuts.
Stars: ✭ 28 (+0%)
Mutual labels:  emacs-package
esh-autosuggest
Fish-like autosuggestions in eshell.
Stars: ✭ 88 (+214.29%)
Mutual labels:  eshell
bnf-mode
A GNU Emacs major mode for editing BNF grammars
Stars: ✭ 34 (+21.43%)
Mutual labels:  emacs-package
nroam
Org-roam backlinks within org-mode buffers
Stars: ✭ 106 (+278.57%)
Mutual labels:  emacs-package
papis.el
Emacs package for papis
Stars: ✭ 22 (-21.43%)
Mutual labels:  emacs-package
load-bash-alias
Convert bash aliases into eshell ones
Stars: ✭ 16 (-42.86%)
Mutual labels:  eshell
list-environment.el
A tabulated process environment editor
Stars: ✭ 13 (-53.57%)
Mutual labels:  emacs-package
esh-help
This library adds some help features for Eshell
Stars: ✭ 19 (-32.14%)
Mutual labels:  eshell
eshell-up
Quickly go to a specific parent directory in eshell
Stars: ✭ 28 (+0%)
Mutual labels:  eshell
shell-switcher
An emacs minor mode to easily switch between shell buffers (like with alt+tab)
Stars: ✭ 40 (+42.86%)
Mutual labels:  eshell
org-sort-tasks
Functions to keep TODO tasks in orgmode sorted and organized.
Stars: ✭ 26 (-7.14%)
Mutual labels:  emacs-package

eshell-info-banner.el

https://melpa.org/packages/eshell-info-banner-badge.svg https://stable.melpa.org/packages/eshell-info-banner-badge.svg

Introduction

eshell-info-banner.el is a utility for creating an informative banner, akin to fish_greeting but for Eshell. But an image is worth a thousand words, let’s see how it looks like:

img/screenshot.png

This will be displayed every time you open a new Eshell instance, or if you invoke eshell-info-banner from it.

This package is geared towards Linux in particular, I am pretty sure it will not work on Windows, and there will probably be bugs on macOS. PR are welcome if you want to fix that!

Table of Contents

Recent Breaking Changes

0.8.1

Version 0.8.1 removes the optional argument REMOTE from eshell-info-banner--executable-find. It now only acts according to the user’s preference set with eshell-info-banner-tramp-aware.

0.7.0

Version 0.7.0 renames several functions to conform with the Elisp Coding Conventions.

Old NameNew Name
eshell-info-banner--ge-mounted-partitions/dufeshell-info-banner--ge-mounted-partitions-duf
eshell-info-banner--get-mounted-partitions/dfeshell-info-banner--get-mounted-partitions-df
eshell-info-banner--get-mounted-partitions/windowseshell-info-banner--get-mounted-partitions-windows
eshell-info-banner--get-mounted-partitions/darwineshell-info-banner--get-mounted-partitions-darwin
eshell-info-banner--get-mounted-partitions/gnueshell-info-banner--get-mounted-partitions-gnu
eshell-info-banner--get-memory/gnueshell-info-banner--get-memory-gnu
eshell-info-banner--get-memory/unixeshell-info-banner--get-memory-unix
eshell-info-banner--get-memory/windowseshell-info-banner--get-memory-windows
eshell-info-banner--get-os-information/windowseshell-info-banner--get-os-information-windows
eshell-info-banner--get-os-information/gnueshell-info-banner--get-os-information-gnu
eshell-info-banner--get-os-information/darwineshell-info-banner--get-os-information-darwin

The following function was removed:

  • eshell-info-banner--get-memory/darwin

The following alias (replacing an old function) was removed:

  • eshell-info-banner--get-memory/bsd

Installation

A couple of options are available for installing eshell-info-banner.el. The first one is to clone the repository in your load-path and add the following to your .emacs or your init.el:

(require 'eshell-info-banner)
(add-hook 'eshell-banner-load-hook 'eshell-info-banner-update-banner)

If you use use-package only and install the package from MELPA, you can then install it like so:

(use-package eshell-info-banner
  :ensure t
  :defer t
  :hook (eshell-banner-load . eshell-info-banner-update-banner))

In my case, I prefer using use-package with straight:

(use-package eshell-info-banner
  :ensure t
  :defer t
  :straight (:build t)
  :hook (eshell-banner-load . eshell-info-banner-update-banner))

You can just use :straight t if you do not want to ensure the package gets compiled by Emacs.

There is probably a similar way to install it with pure straight.el or quelpa, but I’m not knowledgable enough for that, feel free to create a PR to add some more installation instructions!

Customizing

Custom Variables

A couple of variables can be edited by the user in order to configure eshell-info-banner.el:

eshell-info-banner-partition-prefixes
Filter for which mountpoints are to be shown to the user. By default, only partitions mounted on a filesystem (as displayed by the command df -Hl) prefixed by /dev are shown, but you can modify it by adding other prefixes to this list. For instance, to detect ZFS roots, you can set its value to ("/dev" "zroot").

Default value: ("/dev")

eshell-info-banner-shorten-path-from
Maximum length of the mount path of a partition before it gets abbreviated. Set it to ridiculous numbers in order to disable it (something like 1000 should be more than enough).

Default value: 7

eshell-info-banner-width
Minimum width of the banner. Be aware the banner will automatically select the minimal width required to display everything it wants to display if eshell-info-banner-width is too small. Default value: 80
eshell-info-banner-progress-bar-char
Character to fill the progress bar with.

Default value: =

eshell-info-banner-warning-percentage
Percentage from which the level should be displayed as a warning.

Default value: 75

eshell-info-banner-critical-percentage
Percentage from which the level should be displayed as critical.

Default value: 90

eshell-info-banner-tramp-aware
When using Eshell through TRAMP, you can decide whether eshell-info-banner will display information about the remote system you are connected to or only display information about your local system. To achieve this, set eshell-info-banner-tramp-aware to t to display information on the remote system or to nil to keep local information only.

Default value: t

eshell-info-banner-use-duf
Whether or not to use duf. duf is a better replacement for df and should be more platform-agnostic than the latter. I also suspect this implementation will be faster than the one with df, since there is very few string manipulation with duf compared to the implementations with df.

Default value: t if duf is found on the system, nil otherwise

eshell-info-banner-duf-executable
Path to your duf executable. If duf is not found by default by Emacs, you can override eshell-info-banner-use-duf with t and specify the path to duf with this custom variable.

Default value: duf

eshell-info-banner-file-size-flavor
This variable reflects the possible values passed to the function file-size-human-readable. It can hold one of these three values:
  • nil
  • si
  • iec

Since the value iec generates longer file size prefixes, progress bars become slightly shorter. For more details on this option, see the documentation of file-size-human-readable.

Default value: nil

Faces

Don’t like the colors used by the package? They should follow by default your theme, but you can customize the following faces:

eshell-info-banner-background-face
Used for filling the empty part of progress bars
eshell-info-banner-normal-face
Used for filling the progress bar when on normal levels
eshell-info-banner-warning-face
Used for filling the progress bar when on warning levels
eshell-info-banner-critical-face
Used for filling the progress bar when on critical levels

My computer doesn’t have a battery, will this still work?

As you can see, one line shows you your battery level. Il will start to warn you in a reverse way compared to the other progress bars, as it should for battery levels –a fully charged battery at 100% is not at a critical level, but at 0% it would be.

However, you might be on a desktop or any kind of computer that does not have a battery, so… what do? Don’t worry, Emacs will automatically detect whether you have a battery or not and will only display this line if you have one. If you don’t have a battery, the only difference is you will have one less line than laptop users.

Advice for Windows users

Currently, the partitions detection is done only with the duf command-line utility. If you want a list of your partitions, I strongly encourage you to install it on your system. See https://github.com/muesli/duf#windows.

Contributing

See CONTRIBUTING.org.

License

eshell-info-banner.el is available under the GNU GPL-3.0 license. You can find the full text in the LICENSE file.

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