All Projects → andresgongora → Synth Shell

andresgongora / Synth Shell

Licence: gpl-3.0
Boost your terminal, script by script

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Synth Shell

Goat
POSIX-compliant shell movement boosting hack for real ninjas (aka `cd x` and `cd ...`)
Stars: ✭ 27 (-87.56%)
Mutual labels:  productivity, utility, terminal
Webterminal
ssh rdp vnc telnet sftp bastion/jump web putty xshell terminal jumpserver audit realtime monitor rz/sz 堡垒机 云桌面 linux devops sftp websocket file management rz/sz otp 自动化运维 审计 录像 文件管理 sftp上传 实时监控 录像回放 网页版rz/sz上传下载/动态口令 django
Stars: ✭ 1,124 (+417.97%)
Mutual labels:  terminal, maintenance
Notica
Send browser notifications from your terminal. No installation. No registration.
Stars: ✭ 215 (-0.92%)
Mutual labels:  productivity, terminal
Beautifultable
Python package for printing visually appealing tables on a terminal.
Stars: ✭ 110 (-49.31%)
Mutual labels:  utility, terminal
Tip
Programmable tooltip that can be used with any Mac OS app
Stars: ✭ 798 (+267.74%)
Mutual labels:  productivity, utility
Slowquitapps
Add a global delay to Command-Q to stop accidental app quits.
Stars: ✭ 916 (+322.12%)
Mutual labels:  productivity, utility
Httpcat
httpcat is a simple utility for constructing raw HTTP requests on the command line.
Stars: ✭ 109 (-49.77%)
Mutual labels:  utility, terminal
Haxor News
Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
Stars: ✭ 3,342 (+1440.09%)
Mutual labels:  utility, terminal
Ridereceipts
🚕 Simple automation desktop app to download and organize your receipts from Uber/Lyft. Try out our new Ride Receipts PRO !
Stars: ✭ 117 (-46.08%)
Mutual labels:  productivity, utility
Nnn
n³ The unorthodox terminal file manager
Stars: ✭ 13,138 (+5954.38%)
Mutual labels:  productivity, terminal
Asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Stars: ✭ 1,805 (+731.8%)
Mutual labels:  utility, terminal
Goto
Alias and navigate to directories with tab completion in Linux
Stars: ✭ 698 (+221.66%)
Mutual labels:  productivity, utility
Saws
A supercharged AWS command line interface (CLI).
Stars: ✭ 4,886 (+2151.61%)
Mutual labels:  utility, terminal
Oh My Bash
A delightful community-driven framework for managing your bash configuration, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
Stars: ✭ 2,605 (+1100.46%)
Mutual labels:  productivity, terminal
Stup
Daily notes in the terminal 🐧
Stars: ✭ 340 (+56.68%)
Mutual labels:  productivity, terminal
Git Extra Status
Get more information for a single or batch of git repositories with a single command
Stars: ✭ 102 (-53%)
Mutual labels:  utility, terminal
vscode-snippet-generator
📜 Generate snippets from code in VSCode
Stars: ✭ 31 (-85.71%)
Mutual labels:  productivity, utility
Eureka
💡 CLI tool to input and store your ideas without leaving the terminal
Stars: ✭ 316 (+45.62%)
Mutual labels:  productivity, terminal
Termy
A terminal with autocomplete
Stars: ✭ 112 (-48.39%)
Mutual labels:  productivity, terminal
Elixir Oh My Zsh
Oh My Zsh plugin for Elixir, IEX, Mix and Phoenix
Stars: ✭ 131 (-39.63%)
Mutual labels:  productivity, terminal

synth-shell

synth-shell improves your terminal experience and productivity through a combination of small bash scripts.

  • System status report:

    • Automatically printed in new terminal sessions (local, SSH, ...).
    • Monitor your servers, RaspberryPis, and workstations. All system info you need at a glance (e.g. external IP address, CPU temperature, etc.).
    • Detect broken services or CPU hogs.
    • Print your own ASCII logo every time you log in.
  • Fancy bash prompt:

    • Configurable colors and aesthetics.
    • Git statuses (requires pull/push, is dirty, etc.) if inside a directory that is part of a git repository.
    • Better separation between user input and command outputs.
  • better ls: an ls -la on steroids alternative.

  • alias: add colors and a nicer behaviour to basic commands.

    • grep.
    • pacman.
    • tree.
    • dmesg.
    • free.
    • sudo: autocomplete commands.
    • history: nicer format and no duplicate (consecutively the same) commands.

Example with status.sh and fancy-bash-prompt.sh

All features are optional, and most can also be customized to your liking. Once installed, the scripts are called from within you .bashrc file and become part of the bash session. You can find more details and similar tools on Yet Another Linux'n Electronics Blog.



Setup

Automatic setup

The included setup script will guide you step by step through the process and let you choose what features to install. During this setup, you can choose to install synth-shell for your user only (recommended) or system-wide (superuser privileges required). To proceed, open and play this link in a separate tab and enter the following into your terminal:

git clone --recursive https://github.com/andresgongora/synth-shell.git
chmod +x synth-shell/setup.sh
cd synth-shell
./setup.sh

Note that for fancy-bash-prompt.sh you might also need power-line fonts. You can instal it as follows (the exact name of the package varies from distro to distro):

  • ArchLinux: sudo pacman -S powerline-fonts
  • Debian/Ubuntu: sudo apt install fonts-powerline

Finally, open up a new terminal and test that everything works. Sometimes, despite power-line fonts being properly installed, the triangle separator for fancy-bash-prompt.sh (if installed) might still not show. In this case, make sure that your locale is set to UTF-8 by editing /etc/locale.conf file (select your language but in UTF-8 format) and running sudo locale-gen. More info on locale. Alternatively, try a different font in your terminal emulator. Some fonts do not support special characters. We get the best results with hack-ttf.

Configuration/customization

You can configure your scripts by modifying the corresponding configuration files. You can find them, along example configuration files, in the following folders depending on how you installed synth-shell:

  • Current-user only: ~/.config/synth-shell/
  • System wide: /etc/synth-shell/

Uninstallation

  1. Edit ~/.bashrc and remove the lines referring to synth-shell, usually at the bottom of the file. If you want to temporarily disable the script, you can just comment them by placing # in front.
nano ~/.bashrc
  1. Remove the folder containing the script, usually in your home folder under ~/.config/synth-shell/.
rm -r ~/.config/synth-shell/



Overview

status.sh

status.sh provides a summarized system report at a single glance every time you open up a new terminal. If it detects that any system parameter (e.g. CPU load, memory, etc.) is over a critical threshold, it will provide a warning and additional information about the cause. Last but not least, it prints a user-configurable ASCII logo to impress your crush from the library with how awesome you are.

Feel free to customize your status report through the many available options in ~/.config/synth-shell/status.config (user-only install) or /etc/synth-shell/status.config (system-wide install),or by replacing their content with the examples files you can find under the same directory.

status configuration options

fancy-bash-prompt.sh

Adds colors and triangular separators to your bash prompt, and if the current working directory is part of a git repository, also git statuses and branches. For best results, consider installing (and telling your terminal to use) the hack-ttf font alongside the powerline-fonts (the later is required for the separators).

As for the git status info, fancy-bash-prompt.sh prints an additional, fourth separator with the name of the current branch and one of the following icons to indicate the state of the repository (can be changed in the config file):

Local-Upstream Local branch has no changes Local branch is dirty
Up to date !
Ahead (you have to push)
Behind (you have to pull)
Diverged (you have to pull-push)

better-ls.sh

Makes ls print more text, but nicely formatted. When called, ls will now list all files (-la), sort folders first, add colors to output, and list hidden files last after a quick separator. However, if you chose to call ls with your own parameters (e.g. ls -l) it will revert to the default behavior except for color and sorting options.

Alias

  • grep to grep --color=auto.
  • pacman to pacman --color=auto.
  • tree to tree --dirsfirst -C.
  • dmesg to dmesg --color=auto --reltime --human --nopager --decode.
  • free to free -mht.
  • sudo adds complete -cf sudo to auto-complete commands.
  • history various changes.



Contribute

This project is only possible thanks to the effort and passion of many, including developers, testers, and of course, our beloved coffee machine. You can find a detailed list of everyone involved in the development in AUTHORS.md. Thanks to all of you!

If you like this project and want to contribute, you are most welcome to do so.

Help us improve

  • Report a bug: if you notice that something is not right, tell us. We'll try to fix it ASAP.
  • Suggest an idea you would like to see in the next release: send us and email or open an issue!
  • Become a developer: fork this repo and become an active developer! Take a look at the issues for suggestions of where to start. Also, take a look at our coding style.
  • Spread the word: telling your friends is the fastest way to get this code to the people who might enjoy it!

Git branches

There are two branches in this repository:

  • master: this is the main branch, and thus contains fully functional scripts. When you want to use the scripts as a user, this is the branch you want to clone or download.
  • develop: this branch contains all the new features and most recent contributions. It is always stable, in the sense that you can use it without major inconveniences. However, it's very prone to undetected bugs and it might be subject to major unannounced changes. If you want to contribute, this is the branch you should pull-request to.



About

synth-shell started as a loose collection of (very simple) bash scripts I used for system maintenance. In the beginning, they were simple aids to make my life easier, but as I progressively got the hang out of bash, I also wanted them to print some nice output to the terminal.

This repository was quite different at the beginning. The content of most scripts were loose snippets from third parties that were somehow smashed together. They worked, but not exactly the way I wanted. So, over time I have rewritten most scripts from scratch, removed fluff, and teamed up with super-friendly and engaged contributors. The result is what you see today. I admit it, it's nothing fancy. But it was real fun working on the scripts.

And the name? That's quite easy. I spent most of my coding frenzy listening to SynthWave to feel like Hackerman.



License

Copyright (c) 2014-2021, Andres Gongora - www.andresgongora.com

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