Skip to content

Commit 61e4d22

Browse files
committed
Update structure and style of docs, and added issue templates
1 parent 0574373 commit 61e4d22

9 files changed

Lines changed: 208 additions & 40 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
name: "Bug report"
3+
about: Create a bug report
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
## Describe the bug
11+
12+
A clear and concise description of what the bug is.
13+
14+
### Steps to reproduce
15+
16+
Steps to reproduce the behavior.
17+
18+
### Expected behavior
19+
20+
A clear and concise description of what you expected to happen.
21+
22+
### Environment
23+
24+
- Windows Version: [e.g. 7/8/10/11]
25+
- Other details that you think may affect.
26+
27+
### Additional context
28+
29+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: "Feature request"
3+
about: Suggest an idea
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
## Summary
11+
12+
Brief explanation of the feature.
13+
14+
### Basic example
15+
16+
Include a basic example or links here.
17+
18+
### Motivation
19+
20+
Why are we doing this? What use cases does it support? What is the expected outcome?

docs/README.md

Lines changed: 88 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,50 @@
1-
![Logo Process Governor](images/headers/github-banner-readme.png)
1+
<a id="document-top"></a>
22

3-
---
3+
[![Contributors][contributors-shield]][contributors-url]
4+
[![Forks][forks-shield]][forks-url]
5+
[![Stargazers][stars-shield]][stars-url]
6+
[![Issues][issues-shield]][issues-url]
7+
[![License][license-shield]][license-url]
48

5-
**Process Governor** is a Python utility designed to manage Windows processes and services by adjusting their
6-
priorities, I/O priorities, and core affinity based on user-defined rules.
9+
<br />
10+
<div align="center">
11+
<a href="https://github.com/SystemXFiles/process-governor">
12+
<img src="icons/logo.png" alt="Logo">
13+
</a>
14+
15+
<h3 align="center">Process Governor</h3>
16+
17+
<p align="center">
18+
A utility to automate Windows process and service management.
19+
<br />
20+
<a href="#documentation"><strong>Explore the docs »</strong></a>
21+
<br />
22+
<br />
23+
<a href="https://github.com/SystemXFiles/process-governor/issues/new?labels=bug&template=bug-report.md">Report Bug</a>
24+
·
25+
<a href="https://github.com/SystemXFiles/process-governor/issues/new?labels=enhancement&template=feature-request.md">Request Feature</a>
26+
</p>
27+
</div>
28+
29+
<details>
30+
<summary>Table of Contents</summary>
31+
<ol>
32+
<li><a href="#about-the-project">About The Project</a></li>
33+
<li><a href="#getting-started">Getting Started</a></li>
34+
<li><a href="#documentation">Documentation</a></li>
35+
<li><a href="#star-history">Star History</a></li>
36+
<li><a href="#license">License</a></li>
37+
</ol>
38+
</details>
39+
40+
## About The Project
41+
42+
<div align="center">
43+
<img src="images/screenshots/process_list_faded.png" width="95%" height="95%">
44+
</div>
45+
46+
**Process Governor** is a Python utility that automates the management of Windows processes and services by adjusting
47+
their priorities, I/O priorities, and core affinity according to user-defined rules.
748

849
### Features
950

@@ -17,35 +58,68 @@ priorities, I/O priorities, and core affinity based on user-defined rules.
1758
<details>
1859
<summary>Click to expand</summary>
1960

20-
> ![process_list.png](images/screenshots/process_list.png)
61+
> ![](images/screenshots/process_list.png)
2162
>
22-
> ![process_rules.png](images/screenshots/process_rules.png)
63+
> ![](images/screenshots/process_rules.png)
2364
>
24-
> ![tray_menu.png](images/screenshots/tray_menu.png)
65+
> ![](images/screenshots/tray_menu.png)
2566
</details>
2667
27-
## Getting started
68+
<p align="right">(<a href="#document-top">back to top</a>)</p>
69+
70+
## Getting Started
2871

2972
To get started with **Process Governor**, follow these steps:
3073

3174
1. Download the latest ready-to-use build from the following
3275
link: [Latest Release](https://github.com/SystemXFiles/process-governor/releases/latest).
3376
2. Run the `Process Governor.exe` executable with **administrative privileges**.
34-
This is important to allow the program to make the necessary adjustments to process and service priorities, I/O
35-
priorities, and core affinity.
3677
3. Configure the rules for processes and services.
37-
4. **Optionally**, you can enable auto-start for the program to launch automatically with
38-
the system.
78+
4. **Optionally**, enable auto-start for the program to launch automatically with the system.
3979

4080
You can close the program by accessing the tray icon.
4181

42-
## Knowledge base
82+
<p align="right">(<a href="#document-top">back to top</a>)</p>
83+
84+
## Documentation
4385

4486
- [Process Governor UI](ui_process_governor.md)
4587
- [Rule Behavior and Tips](rule_behavior_and_tips.md)
4688
- [Configuration file](configuration_file.md)
4789
- [Running from source and creating a portable build](run_and_build.md)
4890

91+
<p align="right">(<a href="#document-top">back to top</a>)</p>
92+
93+
## Star History
94+
95+
[![Star History Chart](https://api.star-history.com/svg?repos=SystemXFiles/process-governor&type=Date)](https://star-history.com/#SystemXFiles/process-governor&Date)
96+
97+
<p align="right">(<a href="#document-top">back to top</a>)</p>
98+
4999
## License
50100

51-
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](../LICENSE) file for details.
101+
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](../LICENSE) file for details.
102+
103+
<p align="right">(<a href="#document-top">back to top</a>)</p>
104+
105+
<!-- MARKDOWN LINKS & IMAGES -->
106+
107+
[contributors-shield]: https://img.shields.io/github/contributors/SystemXFiles/process-governor.svg?style=for-the-badge
108+
109+
[contributors-url]: https://github.com/SystemXFiles/process-governor/graphs/contributors
110+
111+
[forks-shield]: https://img.shields.io/github/forks/SystemXFiles/process-governor.svg?style=for-the-badge
112+
113+
[forks-url]: https://github.com/SystemXFiles/process-governor/network/members
114+
115+
[stars-shield]: https://img.shields.io/github/stars/SystemXFiles/process-governor.svg?style=for-the-badge
116+
117+
[stars-url]: https://github.com/SystemXFiles/process-governor/stargazers
118+
119+
[issues-shield]: https://img.shields.io/github/issues/SystemXFiles/process-governor.svg?style=for-the-badge
120+
121+
[issues-url]: https://github.com/SystemXFiles/process-governor/issues
122+
123+
[license-shield]: https://img.shields.io/github/license/SystemXFiles/process-governor.svg?style=for-the-badge
124+
125+
[license-url]: https://github.com/SystemXFiles/process-governor/blob/master/LICENSE

docs/configuration_file.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
# Configuration File
1+
<a id="document-top"></a>
22

3-
[![README](icons/readme.png) README](README.md)
3+
# Configuration File
44

5-
---
5+
[![README](icons/readme.png) README](README.md#documentation)
66

77
The `config.json` configuration file manages the behavior of the **Process Governor** application. This file allows
88
users to define rules for regulating process priorities, I/O priorities, and CPU core affinity, as well as manage
99
services with similar settings.
1010

1111
The application regularly checks the configuration file for changes and applies the updates accordingly.
1212

13-
---
1413
## Configuration File Example
1514

1615
Below is an example of the configuration file with several rules defined for processes and services:
@@ -73,9 +72,10 @@ Below is an example of the configuration file with several rules defined for pro
7372
"version": 3
7473
}
7574
```
75+
7676
</details>
7777

78-
---
78+
<p align="right">(<a href="#document-top">back to top</a>)</p>
7979

8080
## Structure of the `config.json`
8181

@@ -100,7 +100,7 @@ process based on several key parameters:
100100
- `"Command line"`: Match by command line (e.g., `"App.exe Document.txt"`).
101101

102102

103-
- **`selector`** (string): Specifies the name, pattern, or path to the process.
103+
- **`selector`** (string): Specifies the name, pattern, or path to the process.
104104
**Supported wildcards:**
105105
- `*`: Matches any number of characters.
106106
- `?`: Matches a single character.
@@ -151,6 +151,8 @@ process based on several key parameters:
151151
- If not specified, the settings are applied immediately.
152152
- Positive values set a delay in seconds before applying the settings.
153153

154+
<p align="right">(<a href="#document-top">back to top</a>)</p>
155+
154156
### `serviceRules`
155157

156158
This section contains a list of rules applied to services. Unlike `processRules`, the **Service Rule** does not include
@@ -175,10 +177,12 @@ in `processRules`.
175177
This field specifies the version of the configuration. It is required for ensuring proper migration and updates when the
176178
program configuration changes over time.
177179

178-
---
180+
<p align="right">(<a href="#document-top">back to top</a>)</p>
179181

180182
## Validation
181183

182184
The configuration file undergoes validation to ensure consistency and correctness. If there are any issues, such as
183185
invalid parameter combinations or missing required fields, the application will notify the user and prevent the
184-
configuration from being applied until the errors are resolved.
186+
configuration from being applied until the errors are resolved.
187+
188+
<p align="right">(<a href="#document-top">back to top</a>)</p>

docs/icons/logo.png

11.9 KB
Loading
118 KB
Loading

docs/rule_behavior_and_tips.md

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
<a id="document-top"></a>
2+
13
# Rule Behavior and Tips
24

3-
[![README](icons/readme.png) README](README.md)
5+
[![README](icons/readme.png) README](README.md#documentation)
46

5-
---
7+
> [!TIP]
8+
> Before proceeding, it is recommended to familiarize yourself with [Process Governor UI](ui_process_governor.md).
69
710
## Table of Contents
811

@@ -15,18 +18,16 @@
1518
- [Optimizing for Older or Single-Threaded Games](#optimizing-for-older-or-single-threaded-games)
1619
- [Fixing Audio Crackling Issues](#fixing-audio-crackling-issues)
1720

18-
---
19-
20-
> **Note:** Before proceeding, it is recommended to familiarize yourself
21-
> with [Process Governor UI](ui_process_governor.md).
22-
2321
## Rule Priority
2422

2523
When applying rules, the program first checks **service rules** and then moves to **process rules**. This means that if
2624
a service matches a rule, it will take precedence. If no matching service rule is found, the program then applies the
2725
first matching process rule.
2826

29-
> **Note:** Only the first matching rule is applied, so the order of the rules in the configuration is important.
27+
> [!IMPORTANT]
28+
> Only the first matching rule is applied, so the order of the rules in the configuration is important.
29+
30+
<p align="right">(<a href="#document-top">back to top</a>)</p>
3031

3132
## Ignoring a Process
3233

@@ -39,6 +40,8 @@ To ignore a process without applying any specific settings:
3940

4041
This will ensure that the process is excluded from any modifications by the governor.
4142

43+
<p align="right">(<a href="#document-top">back to top</a>)</p>
44+
4245
## Rule for All Processes
4346

4447
To apply a rule to all processes:
@@ -49,6 +52,8 @@ To apply a rule to all processes:
4952
4. Configure the desired settings (e.g., affinity, priority).
5053
5. Place this rule at the bottom of the list to allow more specific rules to take precedence.
5154

55+
<p align="right">(<a href="#document-top">back to top</a>)</p>
56+
5257
## Disabling Hyperthreading
5358

5459
To limit a process to physical CPU cores and disable the use of hyperthreaded (logical) cores:
@@ -60,6 +65,8 @@ To limit a process to physical CPU cores and disable the use of hyperthreaded (l
6065

6166
This will prevent the process from using hyperthreaded cores, which can be beneficial for certain workloads.
6267

68+
<p align="right">(<a href="#document-top">back to top</a>)</p>
69+
6370
## Using Delay to Avoid Side Effects
6471

6572
For some applications, especially games, applying settings like core affinity immediately upon startup can cause issues.
@@ -73,6 +80,8 @@ Adding a delay ensures the process has time to initialize before adjustments are
7380

7481
This helps avoid potential problems like sound not working.
7582

83+
<p align="right">(<a href="#document-top">back to top</a>)</p>
84+
7685
## Optimizing for Older or Single-Threaded Games
7786

7887
Older or poorly optimized games that don’t efficiently use multiple cores can stutter if run with the default core
@@ -86,6 +95,8 @@ affinity settings. To improve performance:
8695

8796
This setup can help distribute the load more effectively and reduce stuttering.
8897

98+
<p align="right">(<a href="#document-top">back to top</a>)</p>
99+
89100
## Fixing Audio Crackling Issues
90101

91102
To address audio crackling or stuttering under high CPU load, it’s recommended to increase the priority of audio-related
@@ -128,10 +139,12 @@ audio tasks, while the first 6 cores (threads 0-11) can be reserved for other ap
128139
- **Important:** This rule must be placed **last** in the rule list, as it serves as a fallback for any processes
129140
that are not explicitly defined in previous rules.
130141

131-
> **Note:** Avoid modifying the **Affinity** for audio services like **AudioSrv** or **AudioEndpointBuilder**, as this
142+
> [!WARNING]
143+
> Avoid modifying the **Affinity** for audio services like **AudioSrv** or **AudioEndpointBuilder**, as this
132144
> may worsen performance. Adjusting the priority for these services is usually sufficient to resolve audio issues such
133145
> as crackling and stuttering.
134146
135147
This configuration helps distribute the CPU load, isolating audio processes to specific cores, ensuring smoother and
136148
more stable sound under high system load.
137149

150+
<p align="right">(<a href="#document-top">back to top</a>)</p>

docs/run_and_build.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Running from source and creating a portable build
1+
<a id="document-top"></a>
22

3-
[![README](icons/readme.png) README](README.md)
3+
# Running from source and creating a portable build
44

5-
---
5+
[![README](icons/readme.png) README](README.md#documentation)
66

77
## Running from source code
88

@@ -13,6 +13,8 @@ To run **Process Governor** from source code, follow these steps:
1313
3. Run the `process-governor.py` script with **administrative privileges**: `python process-governor.py`
1414
4. [Configure the rules](docs/ui_rule_configurator.md) for processes and services.
1515

16+
<p align="right">(<a href="#document-top">back to top</a>)</p>
17+
1618
## Creating a portable build
1719

1820
You can create a portable version of the program using **PyInstaller**. Follow these steps to build the portable
@@ -23,3 +25,5 @@ version:
2325
3. After the script completes, you will find the portable build in the `dist` folder.
2426

2527
Now you have a portable version of the program that you can use without installation.
28+
29+
<p align="right">(<a href="#document-top">back to top</a>)</p>

0 commit comments

Comments
 (0)