✨ Was ist SwitchShuttle?
SwitchShuttle ist eine leistungsstarke plattformübergreifende System-Tray-Anwendung, die die Art und Weise revolutioniert, wie Sie Terminal-Befehle verwalten und ausführen. Entwickelt mit modernen Technologien (Rust + Tauri + Vue.js) bietet es eine elegante Oberfläche zur Organisation, Anpassung und zum schnellen Zugriff auf Ihre am häufigsten verwendeten Terminal-Operationen.
🎯 Hauptfunktionen
- 🖥️ Multi-Plattform-Unterstützung - Funktioniert nahtlos auf macOS, Windows und Linux
- ⚡ Globale Hotkeys - Führen Sie Befehle sofort von überall mit Tastenkombinationen aus
- 🎨 Mehrere Terminal-Unterstützung - iTerm, Terminal, Warp, Alacritty, Hyper und mehr
- 📁 Intelligente Organisation - Erstellen Sie verschachtelte Untermenüs für bessere Befehlsorganisation
- 🔧 Dynamische Eingaben - Interaktive Eingabeaufforderungen für Befehle, die Benutzereingaben benötigen
- 🔄 Mehrere Ausführungsmodi - Ausführung im aktuellen Fenster, neuer Tab oder neues Fenster
- 🚀 Auto-Start - Start beim Systemstart für sofortigen Zugriff
- 🎨 Moderne UI - Schöne, intuitive Oberfläche entwickelt mit Vue.js
- 💻 Kommandozeilen-Interface - Führen Sie Befehle direkt aus dem Terminal mit CLI aus
- ⚙️ Konfigurationsverwaltung - Aktivieren/Deaktivieren von Konfigurationen ohne Löschung
- 🔄 Schalter-Befehle - Systemfunktionen mit Hintergrundausführung umschalten
- 📊 Überwachungsbefehle - Echtzeit-Überwachung von Systemressourcen mit visuellen Indikatoren
🚀 Schnellstart
Download & Installation
Option 1: Homebrew (macOS - Empfohlen)
# Installation über Homebrew
brew tap s00d/switchshuttle
brew install --cask switchshuttle
Option 2: Manueller Download
- Laden Sie die neueste Version für Ihre Plattform von GitHub Releases herunter
- Installieren Sie die Anwendung
- Starten Sie SwitchShuttle - es erscheint in Ihrem System-Tray
- Rechtsklick auf das Tray-Symbol für den Menüzugriff
Erste Konfiguration
- Konfiguration bearbeiten → Öffnet Ihre Konfigurationsdatei in Ihrem Standardeditor
- Fügen Sie Ihre Befehle mit dem JSON-Format hinzu (siehe Beispiele unten)
- Speichern und neu starten Sie die Anwendung
- Genießen Sie Ihre organisierten Befehlsverknüpfungen!
📋 Konfigurationsanleitung
Grundstruktur
SwitchShuttle verwendet JSON-Konfigurationsdateien, gespeichert in:
- macOS/Linux:
~/.config/switch-shuttle/
- Windows:
C:\Users\<Username>\AppData\Roaming\switch-shuttle\
Einfaches Beispiel
{
"terminal": "iterm",
"launch_in": "new_tab",
"title": "Meine Befehle",
"commands": [
{
"name": "🚀 Entwicklungsserver starten",
"command": "npm run dev",
"hotkey": "Ctrl+Shift+D"
},
{
"name": "📦 Abhängigkeiten installieren",
"command": "npm install",
"hotkey": "Ctrl+Shift+I"
},
{
"name": "🔧 Entwicklungstools",
"submenu": [
{
"name": "🧪 Tests ausführen",
"command": "npm test",
"hotkey": "Ctrl+Shift+T"
},
{
"name": "📊 Projekt bauen",
"command": "npm run build",
"hotkey": "Ctrl+Shift+B"
}
]
}
]
}
Erweiterte Funktionen
🔧 Dynamische Eingaben
Erstellen Sie interaktive Befehle, die nach Benutzereingaben fragen:
{
"name": "📝 Neue Komponente erstellen",
"inputs": {
"componentName": "MyComponent",
"componentType": "functional"
},
"commands": [
"mkdir -p src/components/[componentName]",
"touch src/components/[componentName]/index.tsx",
"echo 'import React from \"react\";' > src/components/[componentName]/index.tsx",
"echo 'export const [componentName] = () => [componentName];' >> src/components/[componentName]/index.tsx"
],
"hotkey": "Ctrl+Shift+N"
}
🔄 Mehrere Befehle
Führen Sie eine Befehlssequenz aus:
{
"name": "🔄 Vollständiger Entwicklungszyklus",
"commands": [
"git pull origin main",
"npm install",
"npm run lint",
"npm run test",
"npm run build"
],
"hotkey": "Ctrl+Shift+F"
}
📁 Verschachtelte Untermenüs
Organisieren Sie Befehle in hierarchischen Menüs:
{
"name": "🐳 Docker-Operationen",
"submenu": [
{
"name": "🚀 Dienste starten",
"submenu": [
{
"name": "🏗️ Entwicklung",
"command": "docker-compose -f docker-compose.dev.yml up -d"
},
{
"name": "🏭 Produktion",
"command": "docker-compose -f docker-compose.prod.yml up -d"
}
]
},
{
"name": "🛑 Alle stoppen",
"command": "docker-compose down"
}
]
}
🔄 Schalter-Befehle
Systemfunktionen mit Hintergrundausführung umschalten:
{
"name": "🔧 Systemsteuerung",
"submenu": [
{
"name": "📶 WiFi umschalten",
"command": "networksetup -setairportpower en0 toggle",
"switch": "networksetup -getairportpower en0 | grep -q 'On' && echo 'true' || echo 'false'"
},
{
"name": "🔊 Bluetooth umschalten",
"command": "blueutil -p toggle",
"switch": "blueutil -p | grep -q '1' && echo 'true' || echo 'false'"
},
{
"name": "🌙 Dunklen Modus umschalten",
"command": "osascript -e 'tell app \"System Events\" to tell appearance preferences to set dark mode to not dark mode'",
"switch": "osascript -e 'tell app \"System Events\" to tell appearance preferences to get dark mode'"
}
]
}
Schalter-Befehl-Funktionen:
- Hintergrundausführung - Befehle werden leise ausgeführt ohne Terminal zu öffnen
- Statusprüfung - Erkennt automatisch den aktuellen Zustand
- Visuelles Feedback - Zeigt aktiviert/deaktiviert Status im Menü
- Plattformübergreifend - Funktioniert auf macOS, Windows und Linux
📊 Überwachungsbefehle
Überwachung von Systemressourcen und Diensten mit Echtzeit-Informationen:
{
"name": "📊 Systemüberwachung",
"submenu": [
{
"name": "💾 Speichernutzung",
"command": "top -l 1 | head -n 10",
"monitor": "memory",
"icon": "🧠"
},
{
"name": "💻 CPU-Auslastung",
"command": "top -l 1 | grep 'CPU usage'",
"monitor": "cpu",
"icon": "⚡"
},
{
"name": "💾 Festplattenspeicher",
"command": "df -h | grep '/dev/'",
"monitor": "disk",
"icon": "💾"
},
{
"name": "🌐 Netzwerkstatus",
"command": "ifconfig | grep -E 'inet |status:'",
"monitor": "network",
"icon": "🌐"
}
]
}
Überwachungsbefehle Funktionen:
- Menüintegration - Hinzufügen von Überwachungsbuttons zum System-Tray-Menü
- Befehlsausführung - Ausführung von Überwachungsbefehlen beim Öffnen des Menüs
- Datenanzeige - Anzeige der Befehlsausgabe direkt in der Menüoberfläche
- Visuelle Indikatoren - Icons und Statusindikatoren im Menü
- Plattformübergreifend - Funktioniert auf macOS, Windows und Linux
⚙️ Konfigurationsreferenz
Hauptkonfiguration
Parameter | Typ | Beschreibung | Standard |
---|---|---|---|
terminal |
String | Zu verwendende Terminal-Anwendung | "terminal" |
launch_in |
String | Wo Befehle gestartet werden sollen | "current" |
theme |
String | Terminal-Thema (falls unterstützt) | - |
title |
String | Fenster/Tab-Titel | - |
menu_hotkey |
String | Globaler Hotkey zum Öffnen des Menüs | - |
commands |
Array | Liste der Befehls-Konfigurationen | [] |
enabled |
Boolean | Ob diese Konfiguration geladen werden soll | true |
Terminal-Optionen
Terminal | macOS | Windows | Linux |
---|---|---|---|
iterm |
✅ | ❌ | ❌ |
terminal |
✅ | ✅ | ✅ |
warp |
✅ | ❌ | ❌ |
alacritty |
✅ | ✅ | ✅ |
hyper |
✅ | ✅ | ✅ |
Startmodi
Modus | Beschreibung |
---|---|
current |
Im aktuellen Terminal-Fenster ausführen |
new_tab |
Neuen Tab öffnen und ausführen |
new_window |
Neues Fenster öffnen und ausführen |
Befehls-Konfiguration
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
name |
String | ✅ | Anzeigename für den Befehl |
command |
String | ❌ | Einzelner auszuführender Befehl |
commands |
Array | ❌ | Mehrere auszuführende Befehle |
submenu |
Array | ❌ | Verschachtelte Unterbefehle |
inputs |
Object | ❌ | Dynamische Eingabefelder |
hotkey |
String | ❌ | Globaler Hotkey |
switch |
String | ❌ | Befehl zum Überprüfen des aktuellen Status (für Schalter-Befehle) |
monitor |
String | ❌ | Überwachungstyp für Echtzeit-Ressourcenverfolgung |
icon |
String | ❌ | Emoji-Icon zur visuellen Identifikation |
Konfigurationsverwaltung
Konfigurationen aktivieren/deaktivieren
Sie können einzelne Konfigurationsdateien aktivieren oder deaktivieren, um zu steuern, welche Befehle im System-Tray-Menü verfügbar sind. Dies ist nützlich für:
- Temporäres Deaktivieren - Deaktivieren Sie Konfigurationen ohne Löschung
- Tests - Aktivieren/Deaktivieren von Konfigurationen während der Entwicklung
- Organisation - Behalten Sie mehrere Konfigurationen, verwenden Sie aber nur bestimmte
Im visuellen Editor:
- Öffnen Sie den Konfigurationseditor
- Verwenden Sie den Umschalter im Abschnitt "Konfigurationsstatus"
- Aktivierte Konfigurationen werden geladen und im Menü verfügbar sein
- Deaktivierte Konfigurationen werden ignoriert
In JSON-Konfiguration:
{
"terminal": "iterm",
"launch_in": "current",
"title": "Meine Befehle",
"enabled": true,
"commands": [
{
"name": "Beispiel-Befehl",
"command": "echo Hello World"
}
]
}
Parameter | Typ | Standard | Beschreibung |
---|---|---|---|
enabled |
Boolean | true |
Ob diese Konfiguration geladen und im Menü verfügbar sein soll |
Hinweis: Wenn enabled
auf false
gesetzt oder weggelassen wird, wird die Konfiguration ignoriert und ihre Befehle erscheinen nicht im System-Tray-Menü.
🎯 Anwendungsfälle
👨💻 Entwickler
- Schnelle Projektnavigation - Springen Sie sofort zu verschiedenen Projekten
- Build- und Test-Workflows - Entwicklungszyklen mit einem Klick
- Docker-Verwaltung - Container mit Hotkeys starten/stoppen
- Git-Operationen - Häufige Git-Befehle griffbereit
🛠️ DevOps-Ingenieure
- Serververwaltung - SSH-Verbindungen und Server-Befehle
- Überwachungstools - Schneller Zugriff auf Logs und Metriken
- Deployment-Skripte - Automatisierte Deployment-Workflows
- Datenbankoperationen - Häufige Datenbank-Befehle
🎨 Designer
- Asset-Optimierung - Bildverarbeitung und -optimierung
- Design-System-Tools - Komponenten-Generierung und -Updates
- Prototyp-Server - Schneller Design-Server-Start
🔧 Build aus Quellcode
Voraussetzungen
Build-Schritte
# Repository klonen
git clone https://github.com/s00d/switchshuttle.git
cd switchshuttle
# Abhängigkeiten installieren
npm install
# Entwicklungsmodus
npm run tauri dev
# Für Produktion bauen
npm run tauri build
Plattformspezifische Hinweise
macOS
# Bei Signierungsproblemen
chmod +x /Applications/switch-shuttle.app
xattr -cr /Applications/switch-shuttle.app
codesign --force --deep --sign - /Applications/switch-shuttle.app
🤝 Beitragen
Wir freuen uns über Beiträge! So können Sie helfen:
- Forken Sie das Repository
- Erstellen Sie einen Feature-Branch (
git checkout -b feature/amazing-feature
) - Committen Sie Ihre Änderungen (
git commit -m 'Add amazing feature'
) - Pushen Sie zum Branch (
git push origin feature/amazing-feature
) - Öffnen Sie einen Pull Request
Entwicklungsrichtlinien
- Folgen Sie dem bestehenden Codestil
- Fügen Sie Tests für neue Features hinzu
- Aktualisieren Sie die Dokumentation nach Bedarf
- Stellen Sie plattformübergreifende Kompatibilität sicher
📄 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe LICENSE Datei für Details.
🙏 Danksagungen
- Inspiriert vom ursprünglichen Shuttle Projekt
- Entwickelt mit Tauri für plattformübergreifende Desktop-Apps
- UI powered by Vue.js
📞 Support
- Issues: GitHub Issues
- Releases: GitHub Releases
Entwickelt mit ❤️ von der SwitchShuttle-Community
⭐ Geben Sie diesem Repository einen Stern, wenn es Ihnen nützlich ist!