{"id":13634417,"url":"https://github.com/brianmichel/Juice","last_synced_at":"2025-04-18T14:34:21.618Z","repository":{"id":44402214,"uuid":"76758769","full_name":"brianmichel/Juice","owner":"brianmichel","description":"Make your battery information a bit more interesting.","archived":false,"fork":false,"pushed_at":"2024-03-30T16:50:08.000Z","size":2424,"stargazers_count":763,"open_issues_count":7,"forks_count":36,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-04-16T09:06:38.536Z","etag":null,"topics":["apple","battery","battery-information","juice","menubar"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brianmichel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-18T02:34:04.000Z","updated_at":"2025-02-28T03:02:50.000Z","dependencies_parsed_at":"2024-08-01T23:37:21.649Z","dependency_job_id":null,"html_url":"https://github.com/brianmichel/Juice","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmichel%2FJuice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmichel%2FJuice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmichel%2FJuice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmichel%2FJuice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianmichel","download_url":"https://codeload.github.com/brianmichel/Juice/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249505616,"owners_count":21282921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","battery","battery-information","juice","menubar"],"created_at":"2024-08-01T23:01:04.297Z","updated_at":"2025-04-18T14:34:20.078Z","avatar_url":"https://github.com/brianmichel.png","language":"Swift","funding_links":[],"categories":["Swift","Applications","其它实用工具","System Status","System","Utilities"],"sub_categories":["System","系统相关工具","Local System Status","Text","Others","⚙️ System (23)","System Related Tools"],"readme":"![](/images/icon-readme.png)\n# Juice ⚡️\nMake your battery information a bit more interesting by making your own measurement scale instead of a boring battery indicator.\n\nI was browsing Tumblr one day and saw Cyle make a post about this:\n![](/images/cyle-post.png)\n\nThis got me to thinking if something like that was possible from the frameworks that Apple gives us developers. As it turns out the `IOKit` framework provides a wealth of information and triggers about what's going on with your computer. With this framework you can get power source information and generate callback when values of these sources change!\n\nGoing a step further, I wanted to define a format that would allow for people to create their own scales! Which you can now do, but it's strings only for the time being.\n\n## Screenshots\n![](https://d3vv6lp55qjaqc.cloudfront.net/items/2N0v171X0y0z3m0A2M1E/Image%202016-12-17%20at%209.29.43%20PM.png?X-CloudApp-Visitor-Id=137600)\n\n## Installation\n\nYou can either compile the app through Xcode with the sources, or downloaded the latest binary that has been released [here](https://github.com/brianmichel/Juice/releases/latest)\n\n## Adding A Scale\n\n1. Go to preferences and click the \"Add New Scale\", this will attempt to create and open a new `plist` file that can be used by Juice to load a custom scale. The structure of the plist is described below\n2. Make the desired changes to your scale `plist` in your favorite text editor and save.\n3. Go to preferences and rescan for scales, you should now see the title of the scale you just created in the drop down list of scales to pick from.\n\n## Plist Format\n\nThe format currently used to load custom scales is a simple `plist` file, let's look at the structure of the document:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n\u003cdict\u003e\n\t\u003ckey\u003edefault\u003c/key\u003e\n\t\u003cstring\u003eEdit The Default Value To Show\u003c/string\u003e\n\t\u003ckey\u003edetents\u003c/key\u003e\n\t\u003cdict\u003e\n\t\t\u003ckey\u003e0\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 0 to 10%\u003c/string\u003e\n\t\t\u003ckey\u003e1\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 10 to 20%\u003c/string\u003e\n\t\t\u003ckey\u003e2\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 20 to 30%\u003c/string\u003e\n\t\t\u003ckey\u003e3\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 30 to 40%\u003c/string\u003e\n\t\t\u003ckey\u003e4\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 40 to 50%\u003c/string\u003e\n\t\t\u003ckey\u003e5\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 50 to 60%\u003c/string\u003e\n\t\t\u003ckey\u003e6\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 60 to 70%\u003c/string\u003e\n\t\t\u003ckey\u003e7\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 70 to 80%\u003c/string\u003e\n\t\t\u003ckey\u003e8\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 80 to 90%\u003c/string\u003e\n\t\t\u003ckey\u003e9\u003c/key\u003e\n\t\t\u003cstring\u003eEdit Me, I'll be triggered from 90 to 100%\u003c/string\u003e\n\t\u003c/dict\u003e\n\t\u003ckey\u003etitle\u003c/key\u003e\n\t\u003cstring\u003eEdit The Title\u003c/string\u003e\n\u003c/dict\u003e\n\u003c/plist\u003e\n```\n\n| Key Name | Value Type | Description |\n|----------|------|-------------|\n| `default` | `String` | The default value to be shown if Juice can't figure out what's going on with the power source |\n| `detents` | `Dictionary\u003cString, String\u003e` | A mapping of detents (steps in the charge ratio) to string values to show to the user |\n| `title` | `String` | The title of the scale to be displayed in the preference UI |\n\n**NOTE:** The name of the plist file you save should be unique, by default UUID's are generated as the name of files if you create a scale through the UI.\n\nIf you'd like to drop your own plist to be used by the application, new files can be dropped into the `~/Library/Containers/com.bsm.macos.Juice/Data/Library/Application Support/Juice` folder.\n\n## ✌️\n\nFeel free to contribute by making a pull request and I'll take a look when I can! If you'd like to reach me, feel free to hit me up on Twitter [@brianmichel](https://www.twitter.com/brianmichel).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianmichel%2FJuice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianmichel%2FJuice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianmichel%2FJuice/lists"}