szhu / prep-panel

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prep Panel

Prep Panel is a portable, forkable, Markdown-based settings panel for changing hidden settings or for interactively provisioning a new computer.

The panel framework can be used on any OS. The prep scripts in this repo are for setting up a Mac to my personal preferences.

Screenshot

View full panel screenshot

View panel Markdown source

What's it for?

Prep Panel was originally built for two main use cases:

Hidden settings manager.
Use Prep Panel as a quick way to change hidden settings. It is inspired by these tools, most of which I have used before:

Interactive provisioning.
Use Prep Panel as a quick way to apply your preferences to a new computer or user account. This use case is similar to bootstrapping scripts and tools like Vagrant and Brewfiles.

This tool has some advantages compared to the alternatives:
  • Self-contained. Unlike other similar tools, this tool doesn't require the Mac to have Node, the Xcode Command Line Tools, or anything else installed, and it won't leave your Mac with anything new installed (except specifically what you request). Its only dependency is Deno, which is installed into the current directory, not any global location, as part of the instructions below. This also makes this app easily forkable.

  • Simple source code. The code for the app is written in HTML/CSS/JS, making it easier to maintain than a native app. This also opens up the potential other applications, for example adapting this into a website.

  • Graphical! A bootstrap script is often an all-or-nothing approach. With this tool, you can click to toggle just the settings you want. The app is designed to be easily explorable, and explains what it does. The design is modeled after the upcoming macOS Ventura System Settings app.

  • Markdown fallback. If the app doesn't work in the future for some reason, the content is still easily accessible. Here's the source code for the control panel -- it's just a Markdown doc listing the commands you can run to toggle each setting!

  • Compatible with interactive commands. Even though the UI is graphical, all commands are run in the terminal where you started the server. This makes it have nearly perfect compatibility with anything you would normally run in a terminal: If a program needs you to press the cursor keys to make a selection, or requires you to input a password, you can do that perfectly well.

Instructions

To run the panel:

  1. Download the repo as zip.
  2. Unzip.
  3. Open a terminal and cd to the unzipped folder.
  4. Run: utils/install-deno.sh
  5. Run: panel/serve.ts

Credits

@szhu.

About


Languages

Language:HTML 80.2%Language:TypeScript 19.5%Language:Shell 0.4%