johnwangwyx / cmdCompass

💻🧭cmdCompass is a cross-platform terminal command manager/notebook, enabling users to organize commands into collections, apply tags, define templates with dynamic variables, and view Linux Man (manual) pages with automatic command option highlighting
GNU General Public License v3.0
54 stars 4 forks source link
bash command-line good-first-issue gui-application linux python python-app python-application shell system-administration terminal tkinter

CmdCompass: Collect, Learn, and Recall All Your Terminal Commands

https://github.com/johnwangwyx/cmdCompass/assets/78456315/8e5a3321-6680-4857-a782-5e337547bacf

Table of Contents

  1. Screenshots
  2. User Installation-Mac
  3. User Installation-Windows
  4. User Installation-Linux & Distro Compatibility
  5. User Guide
  6. Contributing

Screenshots

View Manual Page with Option Highlighting

Support 1000+ Cached Core Utility Man pages for instant Lookup. (With the ability to get ~90000 Man pages from ~60000 packages from download and converted to HTML)

User Installation - Mac

Step 1:

The tool uses groff (GNU Roff) to convert downloaded man pages to HTML.

Please install groff by:

brew install groff

Step 2:

User Installation - Windows

Note: When you open the app for the first time, the Windows Smart Screen will open, Windows will block the app because it is an "unreconized app". You have to click on More Info and then a button will show up for you to open the app. (The App remain unreconized unless I pay $$$ to get a certificate to sign my app)

In case you are wondering, for Windows, you don't need to install groff like Mac users. Groff is not available natively on Windows anyway but thanks to the project EZWinPorts, I have added the groff binary built for Windows to the Windows build.

User Installation - Linux

Below distros are tested:

User Guide

GUI breakdown

Below is a breakdown of the different components and their use cases:

Screenshot 2024-05-23 at 4 30 33 PM
  1. [Tag Definations] You can define your tags here with custom colors, and remove existing tags.

  2. [Collection Management] You can choose an existing collection to view your command in this collection. Additionally, you can use the add (Screenshot 2024-05-23 at 4 26 27 PM ) and remove (Screenshot 2024-05-23 at 4 26 53 PM) buttons to add a new collection or remove the current selected collection.

  3. [Command List] This List contains all your commands within the currently selected collection. You can use the select (Screenshot 2024-05-23 at 4 27 27 PM) button to view the command in detail in the right penale. Or you can click on the Screenshot 2024-05-23 at 4 28 24 PM button to add/remove your existing tags to this command.

  4. [Command Body] The full body of your command will be displayed here. You can use the copy (Screenshot 2024-05-23 at 4 31 26 PM) button on the right to copy this command to your clipboard. Note: the save (Screenshot 2024-05-23 at 4 32 14 PM) button will be enabled once you made changes to your command body.

  5. [Comment Tab] You can add your comment for the selected command here.

  6. [Man Page Tab] The man page of your current command will be displayed here. You can also choose to highlight your command options (Screenshot 2024-05-23 at 4 32 42 PM) to view the man pages with your options highlighted.

  7. [Theme Switch] Toggle your theme between day and dark mode.

Enabling variable replacement

If you define your command with {{variable}}, an input box will be automatically created after the command body window. You can specify as many as you want as long as your variables are enclosed in {{}}.

Contributing

Contributions are welcome! Please feel free to open issues or submit pull requests. The tool is still in early stage so please bear with me. :)

Please read CONTRIBUTING.md for the project structure and workflows.