mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-04-27 15:17:38 +00:00
Revert "fix: Remove workspace schemes - use project schemes via workspace"
This reverts commit 22f2d2bfca.
This commit is contained in:
parent
22f2d2bfca
commit
e5d2564cb9
5 changed files with 194 additions and 62 deletions
|
|
@ -0,0 +1,88 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1540"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "788687F02DFF4FCB00B22C15"
|
||||||
|
BuildableName = "VibeTunnel.app"
|
||||||
|
BlueprintName = "VibeTunnel"
|
||||||
|
ReferencedContainer = "container:mac/VibeTunnel-Mac.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
<TestableReference
|
||||||
|
skipped = "NO">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8F43C6272C7596D70048FA02"
|
||||||
|
BuildableName = "VibeTunnelTests.xctest"
|
||||||
|
BlueprintName = "VibeTunnelTests"
|
||||||
|
ReferencedContainer = "container:mac/VibeTunnel-Mac.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</TestableReference>
|
||||||
|
</Testables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8F43C6162C7596D50048FA02"
|
||||||
|
BuildableName = "VibeTunnel.app"
|
||||||
|
BlueprintName = "VibeTunnel-Mac"
|
||||||
|
ReferencedContainer = "container:mac/VibeTunnel-Mac.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8F43C6162C7596D50048FA02"
|
||||||
|
BuildableName = "VibeTunnel.app"
|
||||||
|
BlueprintName = "VibeTunnel-Mac"
|
||||||
|
ReferencedContainer = "container:mac/VibeTunnel-Mac.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1540"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8DD4CFC02C7597BE00F5A3C7"
|
||||||
|
BuildableName = "VibeTunnel.app"
|
||||||
|
BlueprintName = "VibeTunnel-iOS"
|
||||||
|
ReferencedContainer = "container:ios/VibeTunnel-iOS.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
<TestableReference
|
||||||
|
skipped = "NO">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8DD4CFD02C7597C000F5A3C7"
|
||||||
|
BuildableName = "VibeTunnelTests.xctest"
|
||||||
|
BlueprintName = "VibeTunnelTests"
|
||||||
|
ReferencedContainer = "container:ios/VibeTunnel-iOS.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</TestableReference>
|
||||||
|
</Testables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8DD4CFC02C7597BE00F5A3C7"
|
||||||
|
BuildableName = "VibeTunnel.app"
|
||||||
|
BlueprintName = "VibeTunnel-iOS"
|
||||||
|
ReferencedContainer = "container:ios/VibeTunnel-iOS.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "8DD4CFC02C7597BE00F5A3C7"
|
||||||
|
BuildableName = "VibeTunnel.app"
|
||||||
|
BlueprintName = "VibeTunnel-iOS"
|
||||||
|
ReferencedContainer = "container:ios/VibeTunnel-iOS.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
|
|
@ -74,33 +74,14 @@ struct AdvancedSettingsView: View {
|
||||||
Text(error)
|
Text(error)
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(.red)
|
.foregroundColor(.red)
|
||||||
|
} else if cliInstaller.isInstalled {
|
||||||
|
Text("The 'vt' command line tool is installed at /usr/local/bin/vt")
|
||||||
|
.font(.caption)
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
} else {
|
} else {
|
||||||
HStack(alignment: .center, spacing: 8) {
|
Text("Install the 'vt' command line tool to /usr/local/bin for terminal access.")
|
||||||
if cliInstaller.isInstalled {
|
.font(.caption)
|
||||||
Text("The 'vt' command line tool is installed at /usr/local/bin/vt")
|
.foregroundStyle(.secondary)
|
||||||
.font(.caption)
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
} else {
|
|
||||||
Text("Install the 'vt' command line tool to /usr/local/bin for terminal access.")
|
|
||||||
.font(.caption)
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
}
|
|
||||||
|
|
||||||
Spacer()
|
|
||||||
|
|
||||||
Button(action: {
|
|
||||||
showingVtConflictAlert = true
|
|
||||||
}) {
|
|
||||||
HStack(spacing: 4) {
|
|
||||||
Text("Use a different name")
|
|
||||||
.font(.caption)
|
|
||||||
Image(systemName: "arrow.up.forward")
|
|
||||||
.font(.system(size: 10))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.buttonStyle(.plain)
|
|
||||||
.foregroundColor(.accentColor)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} header: {
|
} header: {
|
||||||
|
|
@ -178,14 +159,17 @@ struct AdvancedSettingsView: View {
|
||||||
|
|
||||||
private var vtConflictMessage: String {
|
private var vtConflictMessage: String {
|
||||||
"""
|
"""
|
||||||
You can install the VT bash script with a different name. For example:
|
If 'vt' is already in use on your system, you can copy the VibeTunnel command script with a different name.
|
||||||
|
|
||||||
cp "\(vtScriptPath)" /usr/local/bin/vterm && chmod +x /usr/local/bin/vterm
|
Copy command:
|
||||||
|
cp "\(vtScriptPath)" /usr/local/bin/vtunnel && chmod +x /usr/local/bin/vtunnel
|
||||||
|
|
||||||
|
This will create 'vtunnel' as an alternative command name.
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
private func copyCommandToClipboard() {
|
private func copyCommandToClipboard() {
|
||||||
let command = "cp \"\(vtScriptPath)\" /usr/local/bin/vterm && chmod +x /usr/local/bin/vterm"
|
let command = "cp \"\(vtScriptPath)\" /usr/local/bin/vtunnel && chmod +x /usr/local/bin/vtunnel"
|
||||||
let pasteboard = NSPasteboard.general
|
let pasteboard = NSPasteboard.general
|
||||||
pasteboard.clearContents()
|
pasteboard.clearContents()
|
||||||
pasteboard.setString(command, forType: .string)
|
pasteboard.setString(command, forType: .string)
|
||||||
|
|
@ -201,8 +185,6 @@ private struct TerminalPreferenceSection: View {
|
||||||
@State private var showingError = false
|
@State private var showingError = false
|
||||||
@State private var errorMessage = ""
|
@State private var errorMessage = ""
|
||||||
@State private var errorTitle = "Terminal Launch Failed"
|
@State private var errorTitle = "Terminal Launch Failed"
|
||||||
@State private var showingVtConflictAlert = false
|
|
||||||
@State private var vtConflictMessage = ""
|
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Section {
|
Section {
|
||||||
|
|
@ -334,10 +316,4 @@ private struct TerminalPreferenceSection: View {
|
||||||
Text(errorMessage)
|
Text(errorMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func copyCommandToClipboard() {
|
|
||||||
let pasteboard = NSPasteboard.general
|
|
||||||
pasteboard.clearContents()
|
|
||||||
pasteboard.setString(vtConflictMessage, forType: .string)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -600,7 +600,7 @@ private struct PortConfigurationView: View {
|
||||||
private let logger = Logger(subsystem: "sh.vibetunnel.vibetunnel", category: "PortConfiguration")
|
private let logger = Logger(subsystem: "sh.vibetunnel.vibetunnel", category: "PortConfiguration")
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
VStack(alignment: .leading, spacing: 4) {
|
||||||
HStack {
|
HStack {
|
||||||
Text("Server port:")
|
Text("Server port:")
|
||||||
Spacer()
|
Spacer()
|
||||||
|
|
@ -737,12 +737,11 @@ private struct PortConfigurationView: View {
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(.red)
|
.foregroundColor(.red)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Text("The server will automatically restart when the port is changed.")
|
||||||
|
.font(.caption)
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
}
|
}
|
||||||
|
|
||||||
Text("The server will automatically restart when the port is changed.")
|
|
||||||
.font(.caption)
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
.padding(.top, 4)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,25 +163,6 @@ enum Terminal: String, CaseIterable {
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
// Special handling for Warp terminal
|
|
||||||
if self == .warp {
|
|
||||||
return """
|
|
||||||
tell application "\(processName)"
|
|
||||||
activate
|
|
||||||
tell application "System Events"
|
|
||||||
-- Create new window
|
|
||||||
keystroke "n" using {command down}
|
|
||||||
delay 0.5
|
|
||||||
-- Paste command from clipboard
|
|
||||||
keystroke "v" using {command down}
|
|
||||||
delay 0.3
|
|
||||||
-- Try numeric keypad Enter with small delay
|
|
||||||
key code 76
|
|
||||||
end tell
|
|
||||||
end tell
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
|
|
||||||
// For other terminals, Cmd+N typically creates a new window
|
// For other terminals, Cmd+N typically creates a new window
|
||||||
return """
|
return """
|
||||||
tell application "\(processName)"
|
tell application "\(processName)"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue