better readme structure

This commit is contained in:
Abdenasser 2024-11-12 17:43:24 +01:00
parent 4189c34fd0
commit e6e990ae9b

View File

@ -14,47 +14,68 @@
<img src="https://github.com/Abdenasser/neohtop/blob/main/screenshot.png?raw=true" alt="NeoHtop Screenshot" width="800" />
</div>
## [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:
<a href="https://www.buymeacoffee.com/abdenasser" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.