File system cleanup

This commit is contained in:
2026-03-13 21:26:06 +11:00
parent 8ecb7d4382
commit cf3dba8fe4
83 changed files with 231 additions and 3 deletions

11
.github/assets/bch-qr-placeholder.svg vendored Normal file
View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="640" viewBox="0 0 640 640" role="img" aria-labelledby="title desc">
<title id="title">BCH QR placeholder</title>
<desc id="desc">Placeholder card reminding the maintainer to replace this with a real BCH QR code.</desc>
<rect width="640" height="640" rx="32" fill="#111111"/>
<rect x="64" y="64" width="512" height="512" rx="24" fill="#ffffff"/>
<path d="M156 156h128v128H156zM356 156h128v128H356zM156 356h128v128H156z" fill="#111111"/>
<path d="M192 192h56v56h-56zM392 192h56v56h-56zM192 392h56v56h-56z" fill="#ffffff"/>
<path d="M332 340h32v32h-32zM396 340h32v32h-32zM460 340h32v32h-32zM332 404h32v32h-32zM460 404h32v32h-32zM364 436h32v32h-32zM428 436h32v32h-32z" fill="#111111"/>
<text x="320" y="560" text-anchor="middle" fill="#111111" font-family="Menlo, Monaco, monospace" font-size="24">REPLACE WITH REAL BCH QR</text>
<text x="320" y="602" text-anchor="middle" fill="#ffffff" font-family="Menlo, Monaco, monospace" font-size="24">ADD YOUR bitcoincash: ADDRESS</text>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
.github/assets/downterm-open.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 KiB

BIN
.github/assets/downterm-settings.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

4
.gitignore vendored
View File

@@ -79,7 +79,5 @@ jspm_packages/
dist/
build/
**/Release*
CommandNotch 20*
# Mac... files
**/.DS_Store

90
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,90 @@
# Contributing
Thanks for contributing to Downterm.
## Before You Start
- Use macOS 14+.
- Install Xcode 16+.
- Install `xcodegen` with Homebrew.
- Expect the app target to still be named `CommandNotch` while the public project name is Downterm.
## Local Setup
```bash
cd Downterm
xcodegen generate --spec project.yml
open CommandNotch.xcodeproj
```
## Useful Commands
Generate the project:
```bash
cd Downterm
xcodegen generate --spec project.yml
```
Build:
```bash
cd Downterm
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild build -project CommandNotch.xcodeproj -scheme CommandNotch -destination 'platform=macOS'
```
Run tests:
```bash
cd Downterm
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild test -project CommandNotch.xcodeproj -scheme CommandNotch -destination 'platform=macOS'
```
## What Helps Most
- Bug fixes with a clear reproduction path.
- UI polish that keeps the app feeling intentional instead of generic.
- Accessibility improvements.
- Tests around workspace, screen, settings, and hotkey behavior.
- Docs and onboarding improvements.
## Code Guidelines
- Keep changes targeted.
- Preserve the existing SwiftUI + AppKit split.
- Prefer typed settings and explicit state ownership over hidden side effects.
- Add or update tests when you change behavior.
- Regenerate the Xcode project with XcodeGen if you add or remove files.
## Pull Requests
- Keep PRs small enough to review comfortably.
- Explain the user-facing impact.
- Note any follow-up work or tradeoffs.
- Include screenshots for visible UI changes when possible.
- Mention the exact build/test command you used.
## Issues
When filing a bug, include:
- macOS version
- what you expected
- what actually happened
- reproduction steps
- screenshots or recordings if they help
## Media Updates
README screenshots live in `.github/assets/`.
If you update the UI significantly, refresh:
- `.github/assets/downterm-open.png`
- `.github/assets/downterm-settings.png`
## License
By contributing, you agree that your contributions will be released under the MIT License in this repository.

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Harvey Zuccon
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.

108
README.md Normal file
View File

@@ -0,0 +1,108 @@
# Downterm
<p align="center">
<img src="icons/Downterm-icon-256.png" width="128" alt="Downterm icon">
</p>
<p align="center">
A drop-down terminal for macOS that lives in the notch area.
</p>
<p align="center">
<img src="https://img.shields.io/badge/platform-macOS%2014%2B-black" alt="macOS 14+">
<img src="https://img.shields.io/badge/UI-SwiftUI%20%2B%20AppKit-black" alt="SwiftUI and AppKit">
<img src="https://img.shields.io/badge/license-MIT-black" alt="MIT License">
</p>
Downterm is a notch-native terminal overlay for macOS. It gives you a fast shell without switching spaces, keeping a full Terminal window open, or breaking your flow. Open it with a hotkey, drop into a shell, then get out of the way just as quickly.
The current Xcode target and bundle name are still `CommandNotch`, but the project is being presented publicly as **Downterm**.
## Why Downterm
- You want a terminal that is always one shortcut away.
- You like the idea of a terminal living in the menu bar / notch area instead of a full window.
- You work across multiple displays and want each screen to keep its own notch state.
- You want lightweight workspaces, detachable tabs, and shell access without giving up native macOS feel.
## Features
- Native macOS notch overlay with open and closed states.
- Fast shell sessions powered by SwiftTerm and a local login shell.
- Multiple tabs with hotkeys for new, close, next, previous, and direct tab switching.
- Workspace support, including shared workspaces across screens.
- Multi-display awareness with per-screen assignment and presentation state.
- Detachable tabs that can pop out into standalone terminal windows.
- Terminal themes: Classic, Xterm, Solarized Dark, Dracula, and Nord.
- Configurable terminal size presets with optional hotkeys.
- Hover-to-open behavior and animation tuning.
- Launch at login support.
- Global toggle hotkey and notch-scoped shortcut handling.
- Terminal-friendly macOS key behavior for `Command+Arrow`, `Option+Arrow`, `Command+Backspace`, and `Command+L`.
## Gallery
### Open Notch Terminal
![Downterm open notch terminal](.github/assets/downterm-open.png)
### Settings
![Downterm settings window](.github/assets/downterm-settings.png)
## Getting Started
### Requirements
- macOS 14 or later
- Xcode 16 or later
- Homebrew `xcodegen`
### Build
```bash
cd Downterm
xcodegen generate --spec project.yml
open CommandNotch.xcodeproj
```
Or from the command line:
```bash
cd Downterm
xcodegen generate --spec project.yml
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild build -project CommandNotch.xcodeproj -scheme CommandNotch -destination 'platform=macOS'
```
## Project Layout
```text
Downterm/
├── Downterm/ # XcodeGen spec, app target, tests
├── docs/ # architecture and planning notes
├── icons/ # app icons and branding assets
└── .github/assets/ # README screenshots and support assets
```
## Contributing
Contributions are welcome. If you want to fix bugs, improve the UX, tighten the architecture, or help polish the public release, start with [CONTRIBUTING.md](CONTRIBUTING.md).
## Help Fund Development
If Downterm saves you time, support helps justify more polish and faster iteration.
- Ko-fi: `ADD_YOUR_KOFI_LINK_HERE`
- BCH: `ADD_YOUR_BCH_ADDRESS_HERE`
> Funding placeholders are intentionally left unfinalized until the maintainer adds the real Ko-fi URL and BCH address.
> Replace the BCH placeholder above and swap in a real QR image before publishing this section widely.
<p align="center">
<img src=".github/assets/bch-qr-placeholder.svg" width="220" alt="Placeholder BCH QR card">
</p>
## License
Downterm is released under the [MIT License](LICENSE).