Skip to content

Commit

Permalink
Merge pull request #46 from RyanLua/community-health-files
Browse files Browse the repository at this point in the history
Improve community health files
  • Loading branch information
RyanLua authored Dec 17, 2024
2 parents 0596ab2 + 20d4a51 commit 6a4e915
Show file tree
Hide file tree
Showing 11 changed files with 183 additions and 68 deletions.
28 changes: 28 additions & 0 deletions .configurations/configuration.dsc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
resources:
- resource: Microsoft.Windows.Developer/DeveloperMode
directives:
description: Enable Developer Mode
allowPrerelease: true
settings:
Ensure: Present
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: vsPackage
directives:
description: Install Visual Studio 2022 Community
allowPrerelease: true
settings:
id: Microsoft.VisualStudio.2022.Community
source: winget
- resource: Microsoft.VisualStudio.DSC/VSComponents
dependsOn:
- vsPackage
directives:
description: Install required VS workloads
allowPrerelease: true
settings:
productId: Microsoft.VisualStudio.Product.Community
channelId: VisualStudio.17.Release
vsConfigFile: '${WinGetConfigRoot}\..\.vsconfig'
configurationVersion: 0.2.0
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,9 @@
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

###############################################################################
# Override files to use proper highlighting.
###############################################################################
*.vsconfig linguist-language=JSON
*.XamlStyler linguist-language=JSON
88 changes: 64 additions & 24 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,76 @@

We welcome contributions from the community. If you would like to contribute, please follow the guidelines below.

## Fork, Clone, Branch and Create your PR
If this is your first time contributing, [learn how to contribute to a project through forking](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project).

Once you've discussed your proposed feature/fix/etc. with a team member, and an approach or a spec has been written and approved, it's time to start development:
## Create a new issue

1. Fork the repo on GitHub if you haven't already
1. Clone your fork locally
1. Create a feature branch
1. Work on your changes
1. Create a [Draft Pull Request (PR)](https://github.blog/2019-02-14-introducing-draft-pull-requests/)
1. When ready, mark your PR as "ready for review".
General support should be a [discussion](https://github.com/RyanLua/FluentAutoClicker/discussions) and not a issue. If you have a question, please ask it in the discussion.

## Building the code
### How to report a bug

1. Clone the repository
2. Configure your system
* Please use the [configuration file](.configurations/configuration.dsc.yaml). This can be applied by either:
* Dev Home's machine configuration tool
* WinGet configuration. If you have WinGet version [v1.6.2631 or later](https://github.com/microsoft/winget-cli/releases), run `winget configure .configurations/configuration.dsc.yaml` in an elevated shell from the project root so relative paths resolve correctly
* Alternatively, if you already are running the minimum OS version, have Visual Studio installed, and have developer mode enabled, you may configure your Visual Studio directly via the .vsconfig file. To do this:
* Open the Visual Studio Installer, select “More” on your product card and then "Import configuration"
* Specify the .vsconfig file at the root of the repo and select “Review Details”
> [!CAUTION]
> **If you find a security vulnerability, do NOT open an issue.** [Create a security advisory](https://docs.github.com/en/code-security/security-advisories/working-with-repository-security-advisories/creating-a-repository-security-advisory#creating-a-security-advisory) instead. For more information, see [our security policy](https://github.com/RyanLua/FluentAutoClicker?tab=security-ov-file#readme).
### Rules
To report a bug, [create a new bug report issue](https://github.com/RyanLua/FluentAutoClicker/issues/new?template=bug_report.yml).

- **Follow the pattern of what you already see in the code.**
- Please follow as Modern C# of a style as you can and reference the [.NET Engineering Guidelines](https://github.com/dotnet/aspnetcore/wiki/Engineering-guidelines) as much as you possibly can.
- Try to package new functionality/components into libraries that have nicely defined interfaces.
- Package new functionality into classes or refactor existing functionality into a class as you extend the code.
- When adding new classes/methods/changing existing code, add new unit tests or update the existing tests.
### How to suggest a feature or enhancement

To suggest a feature or enhancement, [create a new feature request issue](https://github.com/RyanLua/FluentAutoClicker/issues/new?template=feature_request.yml).

## Configure your environment

Learn how to configure your environment to develop this project. This assumes you meet the [system requirements for Windows app development](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/system-requirements).

### Using Dev Home or WinGet

You can use the [`configuration.dsc.yaml` configuration file](../.configurations/configuration.dsc.yaml) to configure your environment. This can be applied by either:

* Dev Home's machine configuration tool
* WinGet configuration. If you have WinGet version [v1.6.2631 or later](https://github.com/microsoft/winget-cli/releases), run `winget configure .configurations/configuration.dsc.yaml` in an elevated shell from the project root so relative paths resolve correctly

### Using Visual Studio

If you already have Visual Studio installed and have developer mode enabled, you may import the [`.vsconfig` installation configuration file](../.vsconfig).

1. Open the Visual Studio Installer and close Visual Studio.
1. On either the **Installed** tab or the **Available** tab, select **More** > **Import configuration** on the Visual Studio product card.
1. Locate the `.vsconfig` file from the project root, and then choose **Review details**.
1. Verify that your selections are accurate, and then choose **Modify**.

Additionally, Visual Studio will automatically detect any missing components in a open solution and will prompt you to install them if not already installed.

![Solution Explorer suggests additional components](https://learn.microsoft.com/en-us/visualstudio/install/media/vs-2019/solution-explorer-config-file.png?view=vs-2022)

For more ways to install, learn how to [import or export installation configurations](https://learn.microsoft.com/en-us/visualstudio/install/import-export-installation-configurations?view=vs-2022).

## Building the project

You can build the project with Visual Studio. Before building the project, ensure [your environment is configured correctly](#configure-your-environment).

1. In **Solution Explorer**, choose or open the solution.
1. On the menu bar, choose **Build** > **Build Solution**, or press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>.

To debug the project, press <kbd>F5</kbd> or choose **Debug** > **Start Debugging**.

For more information, learn how to [build and clean projects and solutions in Visual Studio](https://learn.microsoft.com/en-us/visualstudio/install/import-export-installation-configurations?view=vs-2022).

## Helpful resources

Resources to help you contribute to this project and learn more about Windows app development:

* [Start developing Windows apps](https://learn.microsoft.com/en-us/windows/apps/get-started/start-here)
* [Create your first WinUI 3 (Windows App SDK) project](https://learn.microsoft.com/en-us/windows/apps/winui/winui3/create-your-first-winui3-app)
* [Build a Hello World app using C# and WinUI 3 / Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/how-tos/hello-world-winui3)

## Rules

* **Follow the pattern of what you already see in the code.**
* Please follow as Modern C# of a style as you can and reference the [.NET Engineering Guidelines](https://github.com/dotnet/aspnetcore/wiki/Engineering-guidelines) as much as you possibly can.
* Try to package new functionality/components into libraries that have nicely defined interfaces.
* Package new functionality into classes or refactor existing functionality into a class as you extend the code.
* When adding new classes/methods/changing existing code, add new unit tests or update the existing tests.

## License

By contributing, you agree that your contributions will be licensed under the [GNU Affero General Public License v3.0](https://github.com/RyanLua/FluentAutoClicker?tab=AGPL-3.0-1-ov-file).
By contributing, you agree that your contributions will be licensed under the [GNU Affero General Public License v3.0](https://github.com/RyanLua/FluentAutoClicker?tab=AGPL-3.0-1-ov-file#readme).
9 changes: 7 additions & 2 deletions .github/GOVERANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
This document outlines the governance guidelines for this GitHub repository, which is owned by a single person with full power over its development and management.

## Owner Responsibilities

The owner is responsible for maintaining the project's code and ensuring that it operates effectively and efficiently. The owner also has the authority to make decisions regarding the project's development and management.

## Contributions
Contributions are welcome, but the owner reserves the right to accept or reject any contributions. The owner will review any contributions in a timely manner and provide feedback to the contributor. The owner may also make changes to the contribution as necessary. Learn more at [CONTRIBUTING.md](CONTRIBUTING.md)

Contributions are welcome, but the owner reserves the right to accept or reject any contributions. The owner will review any contributions in a timely manner and provide feedback to the contributor. The owner may also make changes to the contribution as necessary. Learn more by reading the [contributing guidelines](CONTRIBUTING.md).

## Code of Conduct

Expand All @@ -17,13 +19,16 @@ All contributors and users are expected to adhere to the following code of condu
* Contribute positively and constructively to discussions and development.
* Maintain confidentiality of any sensitive information related to the project.

The owner reserves the right to remove any contributor or user who violates the code of conduct. Learn more at [CODE_OF_CONDUCT.md](https://github.com/RyanLua/FluentAutoClicker?tab=coc-ov-file)
The owner reserves the right to remove any contributor or user who violates the [code of conduct](https://github.com/RyanLua/FluentAutoClicker?tab=coc-ov-file#readme).

## Decision Making

As the sole owner, the owner has full decision-making power over the project's development and management. The owner may seek input and advice from contributors and users, but the final decision rests with the owner.

## Changes to Governance Guidelines

The owner may update these governance guidelines as necessary to ensure the effective and efficient operation. Any changes will be communicated to contributors and users in a timely manner.

## Conclusion

By contributing to or using this repository, you agree to adhere to these governance guidelines. If you have any questions or concerns, please contact the repository owner.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Suggest a feature
name: Suggest a feature or enhancement
description: Suggest an idea for this project.
labels: ["enhancement"]
body:
Expand Down
4 changes: 3 additions & 1 deletion .vsconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.Universal"
],
"extensions": []
"extensions": [
"https://marketplace.visualstudio.com/items?itemName=TeamXavalon.XAMLStyler2022"
]
}
57 changes: 18 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,43 @@
<p align="center">
<img alt="Fluent Auto Clicker" align=center src="assets/Logo.png" height="128px" />
<img alt="Fluent Auto Clicker" align=center src="assets/Logo.svg" height="128px" />
<h1 align="center">Fluent Auto Clicker</h1>
</p>

> [!NOTE]
> Fluent Auto Clicker is still in development and there is no stable release of it yet. Consider [starring the repository](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars) to support it's development
> [!IMPORTANT]
> This app is still in development and no public release is available. Consider [starring the repository](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars) to show your support.
Fluent Auto Clicker is a beautifully designed auto clicker for Windows 10 and 11. Following the latest Fluent Design guidelines and seamlessly blending into Windows.

We stand out as one of the fastest auto clickers, with a 1ms interval between clicks. Specially optimized for maximum clicking speed, clicking faster than even the most overpowered auto clickers.

Whether you're playing games like Roblox, Minecraft, Cookie Clicker, or tackling any task that requires precise clicking, Fluent Auto Clicker has you covered.
**Fluent Auto Clicker** is a beautifully designed auto clicker for Windows 10 and 11, made with the [Fluent Design Guidelines](https://learn.microsoft.com/en-us/windows/apps/design/basics/).

<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/ScreenshotDark.png">
<source media="(prefers-color-scheme: light)" srcset="assets/ScreenshotLight.png">
<img src="assets/ScreenshotLight.png">
</picture>

## Features

| | Fluent Auto Clicker | Others<sup>1</sup> |
| --: | --- | --- |
| Fast Clicking | :ballot_box_with_check: | :ballot_box_with_check: |
| Custom Hotkeys | :ballot_box_with_check: | :ballot_box_with_check: |
| Low memory footprint | :ballot_box_with_check: | :ballot_box_with_check: |
| Fluent Design | :ballot_box_with_check: | :black_square_button: |
| Light & Dark Theme | :ballot_box_with_check: | :black_square_button: |
| Open-source | :ballot_box_with_check: | :black_square_button: |

### Lightning-Fast Clicking

Experience 1ms intervals between clicks, allowing for up to 1000 clicks per second.

### High Performance

Under 100MB of memory usage and a responsive user interface, Fluent Auto Clicker is exceptionally lightweight. No need to worry about it lagging down your computer.
## 🚀 Features

### Fluent Design Light & Dark Theme
***Lightning-Fast Clicking**: 1ms intervals between clicks, allowing for up to 1000 clicks per second.

Enjoy automatic dark and light themes crafted with the latest Fluent Design guidelines.
* 🌙 **Light & Dark Theme**: Dark and light themes for you to chose along with changing the background material.

### Safe & Secure
* 🛡️ **Secure by Design**: Build for safety and security by using [MSIX AppContainer](https://learn.microsoft.com/en-us/windows/msix/msix-container) for app isolation and virtualization.

Fluent Auto Clicker is open-source, giving users full transparency about what's running on their computer. Other auto clickers are often closed-source, meaning users can't even see the code they're running.
* 🔓 **Open Source**: Fully open-source, allowing you to view to the source code for maximum transparency.

## Contributing
## 👏 Contributing

We welcome contributions from everyone. Before contributing, read the [contribution guidelines](https://github.com/RyanLua/FluentAutoClicker/blob/main/.github/CONTRIBUTING.md).
We welcome contributions from everyone. Before contributing, read the [contribution guidelines](.github/CONTRIBUTING.md).

First-time contributor? Make your first contribution to this repository by tackling one a ["good first issue."](https://github.com/RyanLua/FluentAutoClicker/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
Don't know where you start? Make your first contribution by tackling one a [good first issue](https://github.com/RyanLua/FluentAutoClicker/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).

More experienced? Consider checking out a ["help wanted issue."](https://github.com/RyanLua/FluentAutoClicker/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
If you are more experienced, consider checking out a [help wanted issue](https://github.com/RyanLua/FluentAutoClicker/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).

## License
## 🪪 License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright (C) 2024 Ryan Luu

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
Fluent Auto Clicker is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

You should have received a copy of the GNU Affero General Public License along with this program. A copy of the GNU Affero General Public License is available in the [`COPYING`](COPYING) file in the root of this repository. If not, see <https://www.gnu.org/licenses/>.
Fluent Auto Clicker is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

###### <sup>1</sup> From the top 5 most downloaded auto clickers from Microsoft Store October 2023
You should have received a copy of the GNU Affero General Public License along with this program. A copy of the GNU Affero General Public License is available in the [`COPYING.md`](COPYING.md) file in the root of this repository. If not, see <https://www.gnu.org/licenses/>.
42 changes: 42 additions & 0 deletions Settings.XamlStyler
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"AttributesTolerance": 2,
"KeepFirstAttributeOnSameLine": false,
"MaxAttributeCharactersPerLine": 0,
"MaxAttributesPerLine": 1,
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter",
"SeparateByGroups": false,
"AttributeIndentation": 0,
"AttributeIndentationStyle": 1,
"RemoveDesignTimeReferences": false,
"IgnoreDesignTimeReferencePrefix": false,
"EnableAttributeReordering": true,
"AttributeOrderingRuleGroups": [
"x:Class",
"xmlns, xmlns:x",
"xmlns:*",
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
"Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
"Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
"*:*, *",
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
"Storyboard.*, From, To, Duration"
],
"FirstLineAttributes": "",
"OrderAttributesByName": true,
"PutEndingBracketOnNewLine": false,
"RemoveEndingTagOfEmptyElement": true,
"SpaceBeforeClosingSlash": true,
"RootElementLineBreakRule": 0,
"ReorderVSM": 2,
"ReorderGridChildren": false,
"ReorderCanvasChildren": false,
"ReorderSetters": 0,
"FormatMarkupExtension": true,
"NoNewLineMarkupExtensions": "x:Bind, Binding",
"ThicknessSeparator": 2,
"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin",
"FormatOnSave": true,
"CommentPadding": 2,
}
Loading

0 comments on commit 6a4e915

Please sign in to comment.