mirror of
https://github.com/neon443/ShhShell.git
synced 2026-03-12 05:46:15 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2f7356d3f | ||
|
|
747af5a654 | ||
|
|
811c336bb7 | ||
|
|
b1baef2135 | ||
|
|
e901724619 | ||
|
|
19c1cd4688 | ||
|
|
c1e65b0826 |
@@ -5,8 +5,8 @@
|
||||
// Created by neon443 on 06/06/2025.
|
||||
//
|
||||
|
||||
VERSION = 1.10
|
||||
BUILD = 186
|
||||
VERSION = 1.10.2
|
||||
BUILD = 202
|
||||
|
||||
// Configuration settings file format documentation can be found at:
|
||||
// https://developer.apple.com/documentation/xcode/adding-a-build-configuration-file-to-your-project
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
made by neon443
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://apps.apple.com/app/id6746970159">
|
||||
<img src="https://github.com/neon443/ShhShell/blob/main/Resources/Download_on_the_App_Store_Badge_US-UK_blk_092917.png?raw=true" title="icon" alt="icon" width="100" />
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://testflight.apple.com/join/uNKEAtSw">
|
||||
testflight
|
||||
|
||||
BIN
Resources/Download_on_the_App_Store_Badge_US-UK_blk_092917.png
Normal file
BIN
Resources/Download_on_the_App_Store_Badge_US-UK_blk_092917.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -1092,10 +1092,8 @@
|
||||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
||||
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
|
||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Needed to communicate with SSH Servers";
|
||||
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_NSLocationUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
@@ -1136,10 +1134,8 @@
|
||||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
||||
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
|
||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Needed to communicate with SSH Servers";
|
||||
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_NSLocationUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/apple/swift-argument-parser",
|
||||
"state" : {
|
||||
"revision" : "309a47b2b1d9b5e991f36961c983ecec72275be3",
|
||||
"version" : "1.6.1"
|
||||
"revision" : "cdd0ef3755280949551dc26dee5de9ddeda89f54",
|
||||
"version" : "1.6.2"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -16,7 +16,7 @@
|
||||
"location" : "https://github.com/swiftlang/swift-subprocess",
|
||||
"state" : {
|
||||
"branch" : "main",
|
||||
"revision" : "680621bba49ca5c6b1df8d1693684dfd83351af4"
|
||||
"revision" : "ab2072d457d1464b17166cc02125fc9fc0791e1a"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -24,8 +24,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/apple/swift-system",
|
||||
"state" : {
|
||||
"revision" : "61e4ca4b81b9e09e2ec863b00c340eb13497dac6",
|
||||
"version" : "1.5.0"
|
||||
"revision" : "395a77f0aa927f0ff73941d7ac35f2b46d47c9db",
|
||||
"version" : "1.6.3"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
<string>JetBrainsMonoNerdFontMono-BoldItalic.ttf</string>
|
||||
</array>
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>location</string>
|
||||
</array>
|
||||
<array/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -102,4 +102,22 @@ enum AppIcon: Codable, CaseIterable, Equatable, CustomStringConvertible {
|
||||
return "Blueprint"
|
||||
}
|
||||
}
|
||||
|
||||
var isiOS26: Bool {
|
||||
switch self {
|
||||
case .regular:
|
||||
return true
|
||||
case .beta, .betaBlueprint:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
var radius: CGFloat {
|
||||
switch isiOS26 {
|
||||
case true, false:
|
||||
return 17.578125
|
||||
// case false:
|
||||
// return 16.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ struct SettingsView: View {
|
||||
hostsManager.selectedTheme.background.suiColor.opacity(0.7)
|
||||
.ignoresSafeArea(.all)
|
||||
List {
|
||||
Section("Terminal") {
|
||||
Section("Display") {
|
||||
VStack(alignment: .leading) {
|
||||
HStack {
|
||||
Label("Scrollback", systemImage: "scroll")
|
||||
@@ -52,7 +52,21 @@ struct SettingsView: View {
|
||||
step: 250
|
||||
)
|
||||
}
|
||||
Toggle("Keep Display Awake", systemImage: "cup.and.saucer.fill", isOn: $hostsManager.settings.caffeinate)
|
||||
if #unavailable(iOS 17), hostsManager.settings.filter == .crt {
|
||||
Label("iOS 17 Required", systemImage: "exclamationmark.triangle.fill")
|
||||
.foregroundStyle(.yellow)
|
||||
.transition(.opacity)
|
||||
}
|
||||
Picker("", selection: $hostsManager.settings.filter) {
|
||||
ForEach(TerminalFilter.allCases, id: \.self) { filter in
|
||||
Text(filter.description).tag(filter)
|
||||
}
|
||||
}
|
||||
.pickerStyle(.inline)
|
||||
.labelsHidden()
|
||||
}
|
||||
.animation(.spring, value: hostsManager.settings.filter)
|
||||
|
||||
Section("Cursor") {
|
||||
HStack(spacing: 20) {
|
||||
@@ -154,51 +168,34 @@ struct SettingsView: View {
|
||||
}
|
||||
}
|
||||
|
||||
Section("Keepalive") {
|
||||
Toggle("Location Persistence", systemImage: "location.fill", isOn: $hostsManager.settings.locationPersist)
|
||||
.onChange(of: hostsManager.settings.locationPersist) { _ in
|
||||
if hostsManager.settings.locationPersist && !Backgrounder.shared.checkPermsStatus() {
|
||||
Backgrounder.shared.requestPerms()
|
||||
}
|
||||
}
|
||||
Toggle("Keep Display Awake", systemImage: "cup.and.saucer.fill", isOn: $hostsManager.settings.caffeinate)
|
||||
}
|
||||
// Section("Keepalive") {
|
||||
// Toggle("Location Persistence", systemImage: "location.fill", isOn: $hostsManager.settings.locationPersist)
|
||||
// .onChange(of: hostsManager.settings.locationPersist) { _ in
|
||||
// if hostsManager.settings.locationPersist && !Backgrounder.shared.checkPermsStatus() {
|
||||
// Backgrounder.shared.requestPerms()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
Section("Bell Feedback") {
|
||||
Toggle("Sound", systemImage: "bell.and.waves.left.and.right", isOn: $hostsManager.settings.bellSound)
|
||||
Toggle("Haptic",systemImage: "iphone.radiowaves.left.and.right", isOn: $hostsManager.settings.bellHaptic)
|
||||
}
|
||||
|
||||
|
||||
Section("Terminal Filter") {
|
||||
if #unavailable(iOS 17), hostsManager.settings.filter == .crt {
|
||||
Label("iOS 17 Required", systemImage: "exclamationmark.triangle.fill")
|
||||
.foregroundStyle(.yellow)
|
||||
.transition(.opacity)
|
||||
}
|
||||
Picker("", selection: $hostsManager.settings.filter) {
|
||||
ForEach(TerminalFilter.allCases, id: \.self) { filter in
|
||||
Text(filter.description).tag(filter)
|
||||
}
|
||||
}
|
||||
.pickerStyle(.inline)
|
||||
.labelsHidden()
|
||||
}
|
||||
.animation(.spring, value: hostsManager.settings.filter)
|
||||
|
||||
Section("App Icon") {
|
||||
ScrollView(.horizontal) {
|
||||
HStack {
|
||||
ForEach(AppIcon.allCases, id: \.self) { icon in
|
||||
let isSelected = hostsManager.settings.appIcon == icon
|
||||
ZStack(alignment: .top) {
|
||||
RoundedRectangle(cornerRadius: 21.5)
|
||||
RoundedRectangle(cornerRadius: icon.radius + 5)
|
||||
.foregroundStyle(.gray.opacity(0.5))
|
||||
.opacity(isSelected ? 1 : 0)
|
||||
VStack(spacing: 0) {
|
||||
icon.image
|
||||
.resizable().scaledToFit()
|
||||
.clipShape(RoundedRectangle(cornerRadius: 16.5))
|
||||
.frame(width: 85, height: 85)
|
||||
.clipShape(RoundedRectangle(cornerRadius: icon.radius))
|
||||
.padding(5)
|
||||
Text(icon.description).tag(icon)
|
||||
.font(.caption)
|
||||
@@ -207,7 +204,6 @@ struct SettingsView: View {
|
||||
.multilineTextAlignment(.center)
|
||||
}
|
||||
}
|
||||
.frame(maxWidth: 85, maxHeight: 110)
|
||||
.onTapGesture {
|
||||
withAnimation {
|
||||
hostsManager.settings.appIcon = icon
|
||||
|
||||
@@ -34,7 +34,7 @@ struct AddSnippetView: View {
|
||||
TextEditor(text: $content)
|
||||
.autocorrectionDisabled()
|
||||
.textInputAutocapitalization(.never)
|
||||
.background(.black)
|
||||
// .background(.black)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 5))
|
||||
.padding(.bottom)
|
||||
.frame(minHeight: 50)
|
||||
|
||||
Submodule SwiftTerm updated: cdace6f038...3ed94f8117
Reference in New Issue
Block a user