File system cleanup
11
.github/assets/bch-qr-placeholder.svg
vendored
Normal 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
|
After Width: | Height: | Size: 912 KiB |
BIN
.github/assets/downterm-settings.png
vendored
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
4
.gitignore
vendored
@@ -79,7 +79,5 @@ jspm_packages/
|
||||
dist/
|
||||
build/
|
||||
|
||||
**/Release*
|
||||
CommandNotch 20*
|
||||
|
||||
# Mac... files
|
||||
**/.DS_Store
|
||||
90
CONTRIBUTING.md
Normal 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.
|
||||
|
Before Width: | Height: | Size: 945 B After Width: | Height: | Size: 945 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 735 B After Width: | Height: | Size: 735 B |
|
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 290 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 958 B |
|
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 512 B |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
21
LICENSE
Normal 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
@@ -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
|
||||
|
||||

|
||||
|
||||
### Settings
|
||||
|
||||

|
||||
|
||||
## 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).
|
||||