diff --git a/README.md b/README.md index 551e68b..525e629 100644 --- a/README.md +++ b/README.md @@ -14,47 +14,68 @@ NeoHtop Screenshot -## [Why another system monitor? That's not a TUI? (The Back Story)](https://www.abdenasser.com/2024/11/06/oh-boy-neohtop/) +## Table of Contents +- [Why NeoHtop?](#why-neohtop) +- [Features](#features) +- [Tech Stack](#tech-stack) +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Installation](#installation) + - [Running with Sudo](#running-with-sudo) +- [Development](#development) + - [Setup](#setup) + - [Code Formatting](#code-formatting) + - [Pull Requests](#pull-requests) +- [Contributing](#contributing) +- [Support](#support) +- [License](#license) + +## Why NeoHtop? +[Read about the back story and motivation behind NeoHtop](https://www.abdenasser.com/2024/11/06/oh-boy-neohtop/) ## Features - - 🚀 Real-time process monitoring - 💻 CPU and Memory usage tracking - 🎨 Beautiful, modern UI with dark/light themes -- 🔍 Process search and filtering - - Search for processes by name, command, or PID. Search for multiple things at once by separating them with commas. For - example, `arm, x86` will return processes having `arm` or `x86` as a substring of the name or command. You can use - regular expressions too. For example, `d$` will return a list of daemons (which tend to end in the letter `d`), while - `^(\w+\.)+\w+$` will return a list of processes with reverse domain name notation, such as `com.docker.vmnetd`. - +- 🔍 Advanced process search and filtering - 📌 Pin important processes - 🛠 Process management (kill processes) - 🎯 Sort by any column - 🔄 Auto-refresh system stats -Note: Some processes require monitoring with sudo privileges. To monitor these processes, NeoHtop must be launched with sudo: +### Search Functionality +Search for processes by name, command, or PID. Use commas to search for multiple terms simultaneously. Regular expressions are supported for advanced filtering. -- macOS: `sudo /path/to/NeoHtop.app/Contents/MacOS/NeoHtop` (typically `sudo /Applications/NeoHtop.app/Contents/MacOS/NeoHtop`) -- Linux: `pkexec /path/to/neohtop` (recommended) +Examples: +- `arm, x86`: Returns processes with "arm" or "x86" in the name or command +- `d$`: Lists daemons (processes ending with 'd') +- `^(\w+\.)+\w+$`: Shows processes with reverse domain name notation (e.g., com.docker.vmnetd) ## Tech Stack - - **Frontend**: SvelteKit, TypeScript - **Backend**: Rust, Tauri - **Styling**: CSS Variables for theming - **Icons**: FontAwesome -## Development +## Getting Started ### Prerequisites - - Node.js (v16 or later) - Rust (latest stable) - Xcode Command Line Tools (for macOS) -### Setup +### Installation +Download the latest release from the [releases page](https://github.com/Abdenasser/neohtop/releases). + +### Running with Sudo +Some processes require monitoring with sudo privileges. To monitor these processes, launch NeoHtop with sudo: + +- macOS: `sudo /Applications/NeoHtop.app/Contents/MacOS/NeoHtop` +- Linux: `pkexec /path/to/neohtop` (recommended) +## Development + +### Setup ```bash # Install dependencies npm install @@ -66,13 +87,8 @@ npm run tauri dev npm run tauri build ``` -### Development Setup - -The project uses pre-commit hooks to ensure code consistency. After cloning and installing dependencies, the pre-commit hooks will be automatically installed. - -#### Code Formatting - -We use Prettier for web code and `cargo fmt` for Rust code. Format your code using: +### Code Formatting +We use Prettier for web code and `cargo fmt` for Rust code. ```bash # Format all files @@ -82,25 +98,19 @@ npm run format npm run format:check ``` -The pre-commit hook will automatically format your code when you commit, but you can run the formatter manually at any time. - -#### Pull Requests - -Before submitting a PR, please ensure: +### Pull Requests +Before submitting a PR, ensure: 1. All code is formatted (`npm run format`) 2. The format check passes (`npm run format:check`) 3. Your commits follow the project's commit message conventions ## Contributing - -We welcome contributions from the community! Please see our [contributing guidelines](./.github/CONTRIBUTING.md) for more information. +We welcome contributions! Please see our [contributing guidelines](./.github/CONTRIBUTING.md) for more information. ## Support - If you find this project helpful, consider buying me a coffee: Buy Me A Coffee ## License - This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.