Compare commits

..

91 Commits
2.2 ... master

Author SHA1 Message Date
Matthias Kerbl a2f0e88f83
Update README.md 2024-09-20 14:21:54 +02:00
Matthias Kerbl e2c0b1a0ac
Add files via upload 2024-09-20 14:20:46 +02:00
Matthias Kerbl 73b76a5f62
Update SECURITY.md 2024-09-20 13:57:17 +02:00
Matthias Kerbl ff48b9cc2f
Merge pull request #1311 from SmolekVT/patch-1
Create SECURITY.md
2024-09-12 09:56:12 +02:00
Smolek fa707ee7e1
Create SECURITY.md 2024-09-05 10:38:11 +02:00
Matthias Kerbl 921ec64e46
Merge pull request #1173 from AppHouseKitchen/MatthiasKerbl-patch-3
Update bug_report.md
2024-02-20 12:40:44 +01:00
Matthias Kerbl 1559f0c95e
Update bug_report.md 2024-02-20 12:40:33 +01:00
Matthias Kerbl 90ef62e1c9
Merge pull request #1172 from AppHouseKitchen/MatthiasKerbl-patch-2
Update bug_report.md
2024-02-20 11:54:37 +01:00
Matthias Kerbl 2d3089399e
Update bug_report.md 2024-02-20 11:54:26 +01:00
Matthias Kerbl da53f8ba65
Merge pull request #1171 from AppHouseKitchen/MatthiasKerbl-patch-1
Update bug_report.md
2024-02-20 11:52:56 +01:00
Matthias Kerbl 6c9cc14725
Update bug_report.md 2024-02-20 11:52:37 +01:00
Matthias Kerbl 55eea484f0
Merge pull request #1096 from zooxop/master
style: modify bracket position.
2024-02-13 10:57:24 +01:00
Cheolhyun Mun d68b3401a2 style: modify bracket position. 2023-11-10 01:16:10 +09:00
Matthias Kerbl 4eef58ad77
Update README.md 2023-05-30 15:15:02 +02:00
Matthias Kerbl 7b7a828b27
Update README.md 2023-05-30 15:14:37 +02:00
Matthias Kerbl 9536a0750c
Update README.md 2023-05-30 14:57:44 +02:00
Matthias Kerbl ec8e908bb2
Update README.md 2023-05-30 14:56:36 +02:00
Matthias Kerbl 7152cd1c52
Update README.md 2023-05-30 12:45:51 +02:00
Matthias Kerbl 78f40e0204
Update README.md 2023-05-30 12:43:46 +02:00
Matthias Kerbl ae06e7118a
Update README.md 2023-05-30 12:39:30 +02:00
Matthias Kerbl 1ec639d320
Update README.md 2023-05-30 12:37:44 +02:00
Matthias Kerbl 930269e574
Update README.md 2023-05-30 12:35:12 +02:00
Matthias Kerbl cb5a753f66
Update README.md 2023-03-02 12:44:05 +01:00
Matthias Kerbl 056411468c
Update README.md 2023-03-02 12:36:59 +01:00
Matthias Kerbl 9760383703
Update README.md 2022-11-08 19:42:52 +01:00
Matthias Kerbl 28f277eb71
Update README.md 2022-11-05 15:08:29 +01:00
Matthias Kerbl 03c7f92a44
Update README.md 2022-08-30 17:45:29 +02:00
Matthias Kerbl 3e2a7e6193
Update README.md 2022-08-30 17:20:09 +02:00
Matthias Kerbl c2b9d4dc7f
Update README.md 2022-08-30 17:16:44 +02:00
Matthias Kerbl 92eb3b2429
Update README.md 2022-08-30 16:57:27 +02:00
Matthias Kerbl 656aecdeb7
Update README.md 2022-08-30 16:14:06 +02:00
Matthias Kerbl f4157bcb23
Update README.md 2022-08-30 16:13:27 +02:00
Matthias Kerbl e4f5db60a8
Update README.md 2022-08-30 16:12:28 +02:00
Matthias Kerbl 830defeaa0
Update README.md 2022-08-30 16:11:11 +02:00
Matthias Kerbl 8b63ac6bf5
Update README.md 2022-08-30 16:10:12 +02:00
Matthias Kerbl e58c6acd72
Update README.md 2022-08-30 15:59:48 +02:00
Matthias Kerbl 22b9c9f8d2
Update README.md 2022-08-17 16:02:22 +02:00
Matthias Kerbl 715cbe2375
Update README.md 2022-08-17 16:01:31 +02:00
Matthias Kerbl 25ec916520
Update README.md 2022-05-18 09:58:05 +02:00
Matthias Kerbl 3439d8f981
Merge pull request #683 from zeke-iOS/master
Fixed typos in README.md
2022-05-17 10:14:03 +02:00
zeke 5d647f92fd Fixed typos in README.md 2022-05-17 16:42:45 +09:00
Matthias Kerbl 4d610731ea
Update README.md 2022-04-21 10:50:11 +02:00
Matthias Kerbl 42691ec519
Merge pull request #656 from davidwernhart/add-code-of-conduct-1
Create CODE_OF_CONDUCT.md
2022-04-12 20:53:21 +02:00
Matthias Kerbl ee1dfd6e2a
Create CODE_OF_CONDUCT.md 2022-04-12 20:53:11 +02:00
Matthias Kerbl f9b6252a3b
Merge pull request #655 from davidwernhart/add-license-1
Create LICENSE
2022-04-12 20:47:57 +02:00
Matthias Kerbl 7c4c143ae0
Create LICENSE 2022-04-12 20:47:37 +02:00
Matthias Kerbl f368e869c5
Merge pull request #641 from rottifant/master
Fixed typos in README.md
2022-03-27 12:05:25 +02:00
Raphael Rott 6cf931a3fc
Fixed typos in README.md
Fixed a few typos
2022-03-26 17:16:22 +01:00
Matthias Kerbl 73cc219740
Update README.md 2022-03-22 11:47:57 +01:00
Matthias Kerbl 6c9206fa6e
Merge pull request #623 from sebavenditti/patch-1
Update README.md
2022-03-12 09:38:23 +01:00
Sebastian Venditti 30351e60a5
Update README.md
Fixed a typo.
2022-03-11 18:16:51 -03:00
Matthias Kerbl 9b36eff1d1
Update README.md 2022-03-07 10:47:29 +01:00
Matthias Kerbl 6ec0d159d9
Update README.md 2022-01-22 18:20:29 +01:00
Matthias Kerbl 3936bd1fab
Update README.md 2022-01-22 18:20:07 +01:00
Matthias Kerbl eb54a34645 Update issue templates 2021-12-21 16:41:30 +01:00
Matthias Kerbl 7d1c0d54a8 Update issue templates 2021-12-05 11:34:02 +01:00
Matthias Kerbl 67b8e22224 Update issue templates 2021-12-02 18:30:21 +01:00
Matthias Kerbl be1c6ff69a Update issue templates 2021-12-02 18:27:12 +01:00
Matthias Kerbl f3b01d194c Update issue templates 2021-12-02 18:25:24 +01:00
Matthias Kerbl 0abfeafbd2
Update README.md 2021-11-09 15:50:43 +01:00
Matthias Kerbl ea81111e77
Update README.md 2021-11-07 14:10:29 +01:00
Matthias Kerbl 357a84ba31
Update README.md 2021-11-06 16:00:54 +01:00
Matthias Kerbl 276b8db95a
Update README.md 2021-11-06 15:59:12 +01:00
Matthias Kerbl 465867dc1a
Update README.md 2021-11-06 15:55:50 +01:00
Matthias Kerbl 68160e4b63
Update README.md 2021-11-06 15:49:54 +01:00
Matthias Kerbl 263cf1e5f2
Update README.md 2021-11-06 15:41:05 +01:00
Matthias Kerbl 7aaa55f3da
Update README.md 2021-11-02 23:31:37 +01:00
Matthias Kerbl 34e6ce8987
Update README.md 2021-11-02 11:16:07 +01:00
Matthias Kerbl f4a12b3cdb
Update README.md 2021-10-31 14:18:34 +01:00
Matthias Kerbl b7f526ae51
Update README.md 2021-10-26 20:24:06 +02:00
Matthias Kerbl 80a10a5380
Update README.md 2021-10-26 20:22:18 +02:00
Matthias Kerbl ef3309eb2e
Merge pull request #371 from FMGordillo/master
Use `<details>` for FAQ section
2021-09-21 22:47:48 +02:00
Facundo Martin Gordillo 9ff04f31e3
📚 Update `README.md` 2021-09-06 11:13:49 -03:00
Matthias Kerbl c4cb2a6c0b
Merge pull request #343 from cheack/fix-url
Update README.md - fixed batteryuniversity.com link
2021-08-02 10:08:21 +02:00
Vladimir Pakhomchik bc55439547 Update README.md - fixed batteryuniversity.com link. 2021-08-02 13:09:42 +08:00
Matthias Kerbl b0f808cbf7
Update README.md 2021-07-26 10:32:07 +02:00
Matthias Kerbl 748f1f3943
Update README.md 2021-07-21 17:43:04 +02:00
Matthias Kerbl 17413226ae
Update README.md 2021-07-05 19:30:23 +02:00
Matthias Kerbl 85ba90955f
Update README.md 2021-07-05 15:50:00 +02:00
Matthias Kerbl 446484d71d
Update README.md 2021-07-05 15:47:27 +02:00
Matthias Kerbl a8bb01a824
Update README.md 2021-07-04 22:07:24 +02:00
Matthias Kerbl af9719ad0b
Update README.md 2021-07-04 22:06:35 +02:00
Matthias Kerbl e0c6edfc7c
Update README.md 2021-07-04 22:00:14 +02:00
Matthias Kerbl d9949ce318
Update README.md 2021-06-14 11:01:48 +02:00
Matthias Kerbl b81c72120c
Update README.md 2021-05-03 18:56:55 +02:00
davidwernhart b8b6481b8a
Update README.md 2021-04-24 00:29:47 +02:00
Matthias Kerbl 211a5951b1
Update README.md 2021-04-23 22:46:02 +02:00
Matthias Kerbl e248449a46
Update README.md 2021-04-13 22:36:56 +02:00
Matthias Kerbl 655b839078
Update README.md 2021-04-13 02:58:48 +02:00
Matthias Kerbl c4762793ff
Update README.md 2021-04-08 15:20:12 +02:00
davidwernhart 1c4cff3139
Update README.md 2021-03-30 20:34:41 +02:00
9 changed files with 435 additions and 84 deletions

38
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,38 @@
---
name: Bug Report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**MacBook (please complete the following information):**
- MacBook Model (https://support.apple.com/en-us/HT201608):
- macOS Version (https://support.apple.com/en-us/HT201260):
- Charger Model (Apple, Third Party, Wattage,...):
- Charging Cable (MagSafe 2, MagSafe 3, USB-C, Apple, Third Party,...):
- AlDente Pro or AlDente Free:
- AlDente Version:
- List or add screenshots of all enabled/disabled settings in AlDente:
- Please share a debug file the next time this happens so that we can assess this issue better. You can find a guide on How to generate and share a debug file on our blog(https://apphousekitchen.com/how-to-generate-and-share-a-debug-file/).
- External Monitor connected?
- MacBook used in Clamshell Mode (with the lid closed)?
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected Behavior**
A clear and concise description of what you expected to happen.
**Screenshots and Screen Recordings**
If applicable, add screenshots or screen recordings of the issue to help explain your problem.
**Additional context**
Add any other context about the problem here.

View File

@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -0,0 +1,10 @@
---
name: Question about AlDente
about: Use Discussions section for questions
title: ''
labels: ''
assignees: ''
---
Hi, if you have a question about AlDente, please use the Discussions section of Github: https://github.com/davidwernhart/AlDente/discussions

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 KiB

View File

@ -248,7 +248,8 @@ final class Helper {
print("helperVersion:", helperVersion, " version from helper:", version) print("helperVersion:", helperVersion, " version from helper:", version)
if !helperVersion.elementsEqual(version) { if !helperVersion.elementsEqual(version) {
reply(false) reply(false)
return() } return()
}
else{ else{
self.isInitialized = true self.isInitialized = true
reply(true) reply(true)

128
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

180
LICENSE Normal file
View File

@ -0,0 +1,180 @@
1. Preamble
The AppHouseKitchenOG, owner: David Wernhart and Matthias Kerbl, located in Obersdorfer Straße 31/5/11, 2120 Wolkerdorf, Austria (hereinafter referred to as "COMPANY") offers the “All-In-One charge limiter app for MacBooks” “AlDente”.
The licence agreement regulates the use of the software "AlDente" (hereinafter referred to as "SOFTWARE") for free if the evaluation license has been selected.
This licence agreement is addressed to persons who wish to use the services for professional purposes, i.e. entrepreneurs in the sense of section 1 Abs 1 Z 1 KSchG („Austrian Customer Protection Act“) but also private customers (consumers in the sense of section 1 Abs Z 2 KSchG) (both together hereinafter referred to as "USER").
For the purpose of better readability, no gender-specific differentiation is made. This is done without any intention of discrimination. All genders are equally addressed.
2. Scope of application
This Evaluation Licence Agreement defines and regulates the procurement, use and commercial exploitation of the SOFTWARE as well as the related business and administrative activities if the USER uses the SOFTWARE free of charge for the purpose of evaluating the SOFTWARE. However, if the USER concludes a legal transaction against payment, a separate licence agreement shall apply.
3. Conditions of use
The USER is obliged to provide truthful, comprehensive and correct information within the framework of the business relationship and to keep the specific information up to date at all times. The USER shall treat all data confidentially (this applies in particular to log-in data and passwords). If the USER suspects misuse by third parties, he must inform the COMPANY of this immediately.
The USER shall refrain from all actions which may endanger or impair the technical functionality of the SOFTWARE (including cyber attacks). Such behaviour will be prosecuted.
The USER shall take reasonable precautions to protect the SOFTWARE from unauthorised access by third parties. The USER shall inform its employees or persons similar to employees that the creation of copies beyond the scope of this evaluation licence agreement is not permitted.
The USER is responsible for setting up the necessary infrastructure to ensure the intended operation of the SOFTWARE. The COMPANY is not obliged to provide any further information or advice in this respect.
It is the USER's responsibility to check the compatibility (i.e. the ability to interact with the USER's existing software and hardware infrastructure) and the functional scope of the SOFTWARE before using it against payment.
4. Copyright
The COMPANY shall provide the USER with the SOFTWARE on a non-exclusive basis and for a unlimited period of time, content and territory, however, only for the evaluation purposes (within the meaning of section 24 (1) sentence 1 of the Austrian Copyright Act "Werknutzungsbewilligung"). The objective purpose of the business relationship is the evaluation of the SOFTWARE for the purpose of trial. Unless expressly agreed otherwise, the SOFTWARE may also be used for commercial purposes. The exclusive right to use and exploit the SOFTWARE (within the meaning of section 24 (1) sentence 2 UrhG "Werknutzungsrecht") shall in any case remain with the COMPANY.
The USER is permitted to use the SOFTWARE exclusively for the evaluation purposes intended by the COMPANY.
Please note that the evaluation license does not grant the USER the right to use the SOFTWARE in its entirety.
Sub-licensing or further licensing is only permitted with the express consent of the COMPANY.
The right to decompile the SOFTWARE is excluded.
Markings of the SOFTWARE, in particular copyright notices, trademarks, serial numbers or similar may not be removed, changed or made unrecognisable.
The surrender of the source code of the SOFTWARE is not owed. Neither is a user manual owed, nor the performance of training courses.
5. Use of open source components
The SOFTWARE developed and provided by the COMPANY contains components that are licensed as Open Source Software. The OSS components may only be used under the respective OSS licence conditions. The OSS components are listed in Annex I. The source code of the OSS components (see „Readme“ in Annex I), the respective licence texts, any copyright notices and their disclaimers shall be made available to the CUSTOMER via link in Annex I.
Upon request by the CUSTOMER, the open source code can also be transmitted on a permanent data carrier (e.g. USB stick).
Attention: With regard to the OSS components used, the contractual partner of the CUSTOMER is not the COMPANY, but the respective open source licensor.
Attention: The COMPANY draws attention to the fact that risks are associated with the use of OSS components. As - demonstrative - examples are to be mentioned: Because the source code of the OSS components is public, it is susceptible to security incidents; furthermore, permanent maintenance and use of the OSS components is not ensured; warranty and damage claims are largely excluded.
6. Restriction of the duty to make available
Since no paid version is owed, the COMPANY is in no way obliged to make the SOFTWARE available. The COMPANY reserves the right to discontinue the SOFTWARE without notice.
7. Limitation of liability and warranty
Since no paid version is owed, all warranty and liability claims against the COMPANY are excluded in their entirety. This shall not apply in the event of intentional damage.
8. Right to amend the evaluation licence
The COMPANY shall be entitled to amend this Evaluation Licence Agreement at any time. The COMPANY shall inform the USER of such amendments by sending the amended Evaluation Licence Agreement to the contact details last provided by the USER. The USER shall have the right to object to the amendments. If the USER does not object within 14 days after notification of the amendments, it shall be assumed that the USER has tacitly agreed to the amended evaluation licence agreement.
9. Data protection and protection of business and trade secrets
The disclosure of data and information to the respective required business partners is permitted to the extent necessary for the fulfilment of the contractual relationship (Art 6 para 1 lit b GDPR). Otherwise, the COMPANY and the USER shall be mutually obliged to maintain secrecy with regard to the circumstances and data relating to the other of which they become aware as a result of the present business relationship and, in particular, to observe data secrecy. These obligations regarding data and business secrecy shall also apply beyond the contractual relationship. The COMPANY and the USER further undertake to instruct and instruct their employees and vicarious agents in this sense.
The contracting parties further undertake to protect mutually disclosed business and trade secrets appropriately within the meaning of section 26b (1) no. 3 of the Austrian UWG.
A violation of the confidentiality obligations may (among other things) result in consequences under criminal law and damages law.
It is pointed out that the source code programmed by the COMPANY constitutes a trade and business secret within the meaning of section 26b UWG.
The COMPANY informs that data of the USER may be processed for advertising purposes on the basis of legitimate interests (Art 6 para 1 lit f DSGVO). The USER is entitled to object to the processing of his/her data for advertising purposes (Art 21 (2) GDPR).
10. Reference-Clause
The COMPANY shall be entitled to indicate the fact of the business relationship with the USER by means of a reference on its homepage or business papers. The COMPANY shall be entitled to use the USER's logo in this context. This right to name references also extends beyond the contractual relationship.
11. Participation in evaluations
For the purpose of evaluating the SOFTWARE, the USER undertakes to provide the COMPANY with information on the user-friendliness and performance of the SOFTWARE to a reasonable extent free of charge upon request by the COMPANY and, if necessary, to communicate any suggestions for improvement.
12. Blocking access to the SOFTWARE
If the COMPANY has reasonable grounds to believe that the USER or one of its end users is using the SOFTWARE in an unlawful manner, the COMPANY shall be entitled to block access to the SOFTWARE immediately and without prior notice. This shall not affect the possibility of further legal remedies.
13. Jurisdiction and applicable law
This contractual relationship shall be governed by and construed in accordance with Austrian law. The application of the United Nations Convention on Contracts for the International Sale of Goods (CISG) and of conflict-of-law rules is excluded.
The exclusive place of jurisdiction is the competent court in Korneuburg, Austria.
14. Further issues
If any part of this Evaluation Licence Agreement should be invalid, the validity of the remaining conditions shall not be affected thereby. The invalid provision shall be replaced by a valid provision which comes as close as possible to the economic intent of both contracting parties as discernible from the agreement.
The COMPANY recommends the USER to save this licence agreement permanently.
ANNEX I Open Source:
sindresorhus/Defaults:
Function Library to persist user settings
Licence MIT-License: https://github.com/sindresorhus/Defaults/blob/main/license
Readme https://github.com/sindresorhus/Defaults
Disclaimer THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyrights Sindre Sorhus
sindresorhus/LaunchAtLogin:
Function Provides launch at login functionality
Licence MIT-License: https://github.com/sindresorhus/LaunchAtLogin/blob/main/license
Readme https://github.com/sindresorhus/LaunchAtLogin
Disclaimer THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyrights Sindre Sorhus
sindresorhus/Preferences:
Function Preference window library
Licence MIT-License: https://github.com/sindresorhus/Preferences/blob/main/license
Readme https://github.com/sindresorhus/Preferences
Disclaimer THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyrights Sindre Sorhus
sparkle-project/Sparkle
Function Framework for automatic app updates
Licence https://github.com/sparkle-project/Sparkle/blob/2.x/LICENSE
Readme https://github.com/sparkle-project/Sparkle
Disclaimer THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Copyrights Copyright (c) 2006-2013 Andy Matuschak.
Copyright (c) 2009-2013 Elgato Systems GmbH.
Copyright (c) 2011-2014 Kornel Lesiński.
Copyright (c) 2015-2017 Mayur Pawashe.
Copyright (c) 2014 C.W. Betts.
Copyright (c) 2014 Petroules Corporation.
Copyright (c) 2014 Big Nerd Ranch.
=================
EXTERNAL LICENSES
=================
bspatch.c and bsdiff.c, from bsdiff 4.3
Copyright (c) 2003-2005 Colin Percival.
sais.c and sais.c, from sais-lite (2010/08/07)
Copyright (c) 2008-2010 Yuta Mori.
SUSignatureVerifier.m:
Copyright (c) 2011 Mark Hamlin.
Beltex/SMCKit
Function Interface to access the System Management Controller
Licence MIT-License: https://github.com/beltex/SMCKit/blob/master/LICENSE
Readme https://github.com/beltex/SMCKit
Disclaimer THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Copyrights beltex

111
README.md
View File

@ -1,108 +1,53 @@
# AlDente 🍝 <div align="center">
<img src="AlDente/Assets.xcassets/AppIcon.appiconset/512pt_Mac_1x.png" width=200 height=200>
<h1>AlDente - Charge Limiter</h1>
</div>
_MacOS menu bar tool to limit maximum charging percentage_ _MacOS menu bar tool to limit maximum charging percentage_
#### Don't overcook your battery! Keep it fresh and chewy with AlDente. #### Don't overcook your battery! Keep it fresh and chewy with AlDente.
## !IMPORTANT! Regarding this message: "AlDente will damage your computer. You should move it to the trash."
Due to an expired developer certificate, all versions of AlDente prior to 2.1.2 are not working anymore. We have just released an updated and fixed version (AlDente 2.1.2, https://github.com/davidwernhart/AlDente/releases) signed with our new official developer account. However, some might need to delete the old helper files manually (instructions are in the release notes).
## AlDente for Apple Silicon (M1 MacBooks) is out now!
The time has come: AlDente for Apple Silicon (M1 MacBooks) is out now. We thank everyone who has helped us here in the forum and hope you like it. Thats not all, we have also started working on a pro version of AlDente with advanced features several weeks ago. Since we have put a lot of hours into developing the app, it will cost a little. However, there will always be this free and open source version of AlDente updated with the new M1 SMC keys. If you have any feature requests or ideas for AlDente Pro, let us know. If you want to get notified, when AlDente Pro comes out, just enter your email at https://apphousekitchen.com/aldente/ In the meantime, stay safe and keep your battery fresh. David & Matthias
## Why do I need this? ## Why do I need this?
Li-ion and polymer batteries (like the one in your MacBook) last the longest when operating between 20 and 60 percent. Keeping your battery at 100% at all times can shorten the lifespan of your MacBook significantly. Li-Ion batteries (like the one in your MacBook) last the longest when operating between 20 and 80 percent. Keeping your battery at 100% at all times can shorten the lifespan of your MacBook significantly.
More information can be found here: More information can be found at [Battery University](https://batteryuniversity.com/article/bu-415-how-to-charge-and-when-to-charge).
<https://batteryuniversity.com/learn/article/how_to_charge_when_to_charge_table>
## Features ## Whats AlDente Pro?
* Max. Battery Charge allows you to set your maximum charging percentage between 20 and 100 percent. You can either set it by using the slide bar or by typing in the desired percentage in the field above and pressing enter afterwards. AlDente Pro is our paid version of AlDente. It has many more features such as Heat Protection, Sailing Mode, Top Up, Calibration Mode,... It offers a better design and has live status icons. If you are interested in getting the most out of your battery, check out our [website](https://apphousekitchen.com/).
* Launch at Login does exatly what it says, it will automatically launch AlDente when you start your MacBook. Make sure you safe the AlDente program file in the Applications folder for this feature to work.
* Allow Discharge (Beta) - When this feature is activated, your MacBook will run on battery until it has reached the desired percentage. Afterwards, it will stay at the desired battery percentage and use the power adapter again. Unfortunately, while "Allow Discharge" is activated, clamshell mode is not supported due to technical limitations.
* Use Classic SMC Key (Intel) - When activated, AlDente will use a different pathway to inhibit charging with the benefit of inhibiting charging even if your MacBook is turned off. However, it comes with a tradeoff: The feature "Allow Discharge" is not available when its activated. Furthermore, as the name suggests, this feature is only available on Intel MacBooks.
## Feature Review and Installation Process AlDente Pro is now available on [Setapp](https://apphousekitchen.com/pricing/) too.
https://youtu.be/8jaTSi1kL1w ## Features of AlDente Free
* Charge Limiter allows you to set your maximum charging percentage between 20 and 100 percent. You can either set it by using the slide bar or by typing in the desired percentage in the field above and pressing enter afterwards. Read more about the Charge Limiter feature in this article ["Feature Explanation: Charge Limiter"](https://apphousekitchen.com/feature-explanation-charge-limiter/).
* Discharge - This feature allows your MacBook to run completely on Battery even if it is plugged in. Therefore, you can actively discharge your MacBook to a more healthy percentage. Unfortunately, while Discharge is activated, clamshell mode is not supported due to technical limitations. Read more about the Discharge feature in this article ["Feature Explanation: Discharge"](https://apphousekitchen.com/feature-explanation-discharge/).
Thanks to Haroon21 for making this awesome video tutorial. ## Supported MacBook Models (macOS 11 Big Sur or later required)
## How does it work? Check out if your MacBook is supported on our [FAQ page](https://apphousekitchen.com/faq/).
The tool writes the desired value to your MacBooks SMC (System Management Controller), which handles the rest.
## AlDente is tested and working on pretty much every MacBook from 2010-2020, including: ## Download
* 2020 MacBook Air 13" M1 Apple Silicon
* 2020 MacBook Pro 13" M1 Apple Silicon
* 2020 MacBook Pro 13" with 4 TB3 ports
* 2020 Macbook Air 13" (Intel)
* 2019 MacBook Pro 16"
* 2019 MacBook Pro 13"
* 2018 MacBook Pro 15" with TouchBar
* 2017 MacBook Pro 15"
* 2017 Macbook Pro 13" without TouchBar
* 2017 MacBook Air 13"
* 2017 MacBook 12"
* 2016 MacBook Pro 15"
* 2016 MacBook 12"
* 2015 MacBook 12"
* 2015 MacBook Pro 13"
* 2014 MacBook Air 13"
* 2014 MacBook Pro 15"
* 2014 MacBook Pro 13"
* 2013 MacBook Pro 13"
* 2013 MacBook Air 13"
* 2010 MacBook
## Download:
You can download the app from GitHub: <https://github.com/davidwernhart/AlDente/releases> You can download the app from GitHub: <https://github.com/davidwernhart/AlDente/releases>
## How to use: ## Installation Guide
Simply extract the latest .zip release and drag the App to your Applications Folder. An installation guide can be found on our website:[Installation Guide](https://apphousekitchen.com/installation-guide/)
If you get the annoying `"AlDente cannot be opened because the developer cannot be verified"` or `"AlDente.app" cant be opened because Apple cant check it for malicious software.` messages on Catalina, simply navigate to your Applications folder using Finder, right click on AlDente and select `Open`. Then you can proceed to start the tool normally. ## How to use
When the installation is finished, enter your desired max. charging percentage by clicking on the 🍝 icon on your menu bar. Usually, the operating system will take a minute or two registering the changes, so be patient. You can check if it's working by setting the max. percentage to e.g.: 80%. After a while, clicking on your battery icon will report "Battery is not charging" if you have more than ≈73% left, even though your charger is connected. Notice that in this state, your MacBook is still powered by the charger, but the battery is not charging anymore.
On the first start, the application is going to ask you to allow installing a helper tool. This is necessary, since writing SMC Keys requires root privileges. IMPORTANT: Keeping your battery at a lower percentage, such as under 80%, over weeks without doing full cycles (100%-0%) can result in a disturbed battery calibration. When this happens, your Macbook might turn off with 40-50% left or your battery capacity will drop significantly. However, this is only due to a disturbed battery calibration and not because of a faulty or degraded battery. To avoid this issue, we recommend doing at least one full cycle (0%-100%) every two weeks. Even if your battery calibration gets disturbed, doing 4+ full cycles will recalibrate your battery and the capacity will go up again.
Once finished, enter your desired max. charging percentage by clicking on the 🍝 icon on your menu bar.
For some reason, macOS will always try to squeeze in a few more percent than specified by the SMC. For example, if you set yours to 80% it will stop charging at around 83%, so be patient. Strangely, this is not the case using Windows with bootcamp, therefore I have chosen not to correct this inaccuracy in code for now. ## Support
* Most questions are already answered on our [FAQ page](https://apphousekitchen.com/faq/) or on our [blog](https://apphousekitchen.com/blog/). Check them out!
* E-mail support is only available for AlDente Pro customers. Check out our [support page](https://apphousekitchen.com/support/) if you want to contact us.
* Due to limited recourses, we are not able providing support to AlDente Free users or here in Github.
Usually, the operating system will take a minute or two registering the changes, so be patient. You can check if it's working by setting the max. percentage to e.g.: 70%. After a while, clicking on your battery icon will report "Battery is not charging" if you have more than ≈73% left, even though your charger is connected. Notice that in this state, your MacBook is still powered by the charger, but the battery is not charging anymore. ## Other tools used in this project:
IMPORTANT: Keeping your battery at a lower percentage, such as 20-70%, over weeks without doing full cycles (100%-0%) can result in a disturbed battery calibration. When this happens, your Macbook might turn off with 40-50% left or your battery capacity will drop significantly. However, this is only due to a disturbed battery calibration and not because of a faulty or degraded battery. To avoid this issue, we recommend doing at least one full cycle (0%-100%) every month. Even if your battery calibration gets disturbed, doing 4-5 full cycles will recalibrate your battery and the capacity will go up again.
## FAQ
* IT DOES NOT WORK???
AlDente does only prevent your Mac from charging more than you specify, it does NOT automatically drain your battery to the specified percentage.
* STILL NOT WORKING :(
Simply reboot your MacBook! This seems to do the trick for most people.
* HOW TO UNINSTALL?
Make Sure to set your max. charging percentage back to 100 before moving AlDente to the Trash. If you really want to make sure, you can also reset your Mac's SMC. If you want to also remove the helper tool, take a look at this issue: <https://github.com/davidwernhart/AlDente/issues/19>.
* DO I HAVE TO UNCHECK THE BUILT IN BATTERY HEALTH CHECKBOX?
Yes! Leaving it on results in slow charging, even when AlDente is trying to inhibit it.
* WHAT DOES THE FEATURE "USE OLD SMC KEY (INTEL)" DO?
When activated, AlDente will use a different pathway to inhibit charging with the benefit of inhibiting charging even if your MacBook is turned off. However, it comes with a tradeoff: The feature "Allow Discharge" is not available when its activated. Furthermore, as the name suggests, this feature is only available on Intel MacBooks.
* WHY DOES ALLOW DISCHARGE NOT WORK IN CLAMSHELL MODE?
Unfortunately, while "Allow Discharge" is activated, clamshell mode is not supported due to technical limitations.
* HELP MY BATTERY CAPACITY DROPPED AND MY MACBOOK TURNS OFF WITH 50% LEFT
Keeping your battery at a lower percentage, such as 20-70%, over weeks without doing full cycles (0%-100%-0%) can result in a disturbed battery calibration. When this happens, your Macbook might turn off with 40-50% left or your battery capacity will drop significantly. However, this is only due to a disturbed battery calibration and not because of a faulty or degraded battery. To avoid this issue, we recommend doing at least one full cycle (0%-100%) every month. Even if your battery calibration gets disturbed, doing 4-5 full cycles will recalibrate your battery and the capacity will go up again.
## Other tools I used in this project:
* <https://github.com/beltex/SMCKit> * <https://github.com/beltex/SMCKit>
* <https://github.com/sindresorhus/LaunchAtLogin> * <https://github.com/sindresorhus/LaunchAtLogin>
* <https://github.com/andreyvit/create-dmg> * <https://github.com/andreyvit/create-dmg>
## Disclaimer: ## Disclaimer:
AlDente is currently in alpha phase and bugs may still be possible. Therefore, I do not take any responsibility for any sort of damage in result of using this tool! Alltough this had no negative side effects for me, AlDente still taps in some very low level system functions that are not ment to be tampered with. Use it at your own risk! I do not take any responsibility for any sort of damage in result of using this tool! Although this had no negative side effects for me and thousands of others, AlDente still taps in some very low level system functions that are not meant to be tampered with. Use it at your own risk!
Copyright(c) 2021 David Wernhart Copyright(c) 2021 AppHouseKitchen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

29
SECURITY.md Normal file
View File

@ -0,0 +1,29 @@
# Security Policy
## Supported Versions
We release security updates for the latest version of **AlDente** here: https://github.com/AppHouseKitchen/AlDente-Charge-Limiter/releases
## Reporting a Vulnerability
We take the security of our software seriously. If you discover a security vulnerability, we appreciate your help in disclosing it to us in a responsible manner.
**How to Report**
- **Email:** Please send an email to [security@apphousekitchen.com](mailto:security@apphousekitchen.com).
- **Subject Line:** Use a clear and descriptive subject line, such as "Security Vulnerability in AlDente-Charge-Limiter".
- **Content:** Provide a detailed description of the vulnerability, including steps to reproduce it, the potential impact, and any suggested fixes.
**What to Expect**
- **Acknowledgment:** We will acknowledge receipt of your report within 48 hours.
- **Investigation:** Our team will investigate the issue and work on a fix.
- **Updates:** We will keep you informed about the progress of the investigation and remediation.
- **Disclosure:** Once the vulnerability is resolved, we will issue a patch and publicly disclose the issue, crediting you for the discovery if you wish.
**Guidelines**
- **Confidentiality:** Please do not disclose the vulnerability publicly until we have addressed it.
- **Legal:** You must not violate any laws or breach any agreements in the course of discovering and reporting vulnerabilities.
Thank you for helping us keep **AlDente** safe and secure for everyone!