Commit Graph

62 Commits

Author SHA1 Message Date
neon443
bc24edd13c added a quick font manager/selector
added selectfont, savefont
updated loadfonts
fix swipeaction tint color for hosts
2025-07-06 19:40:52 +01:00
neon443
4a98e3e4c9 axed some of them bc i cba to find italic, bold, bolditalc ones
removed the 2nd font enum and switched to a computed property for the font name
updated the loadfonts thing
removed applyselectedtheme from the sshhandler and the init, moved it to didmovetowindow
2025-07-06 19:13:19 +01:00
neon443
0d53ccc3bc added a buncha fonts
added a fonts enum
added a loadFonts, currently just prints all fonts available
2025-07-06 16:16:30 +01:00
neon443
b5f8c4e716 made the titlebar have the host label and hide tab bar when only one tab
added a lot of logic fore foreground color calculation, based on luminance of foreground, background and selectedAnsi colors
fixed fallback when opening the first session
fixed text of unselected tabs being unreadable
added tint var to hostsmanager to get accentcolor
reduced ios version to ios 16
2025-07-04 14:51:54 +01:00
neon443
143e785ca6 ok cl fuck this shit its so long 2025-07-04 12:07:58 +01:00
neon443
ecfd997487 added traffliclights to make the traffic lights perfect, red yellow done
green wip
clean up on the terminal view: add background and reorg the fiel and add traffic lights
add bg to all the terminal related stuff
2025-07-04 10:47:27 +01:00
neon443
fdc5c4c503 added ansipickerview
added selectAnsi to select an ansi col
2025-07-03 16:47:16 +01:00
neon443
a58a86acec improved tab ui - now orange if selected, gray if not
improved functionality, if disconnected, it switches to the last tab open or if no more, it dismisses
remove dialogview
2025-07-03 14:24:41 +01:00
neon443
c48f01810e TABS!!!!
added shelltabview
it basically puts tabs at the top, and when tapped the id is updated and so is the shellView var to have a new handler (corresponding to that session)
remove @State var shellView from connectionview &other stuff
2025-07-03 13:53:26 +01:00
neon443
0ba1d5091e in go(), auth is now handled by looping over the auth methods the server requests
rewrote getauthmethods, returns a [AuthType]
added authtype to list all auth types
2025-07-03 12:31:58 +01:00
neon443
c9d7b06305 improve ui on keydetailview
add set(keypair, onHost) to set a keypair on host
remove getkeys it always returns []
add delete button to
remove rsa from keytype
rename symbolpreview ->hostsymbolpreview
2025-07-02 21:55:50 +01:00
neon443
8a37a1464a added keyimporter view to import keys
added importkey to import keys and save to keychain
added a picker to select a key id in connection view
fix publickey and opensshpublickey returning a pubkey when privatekey is empty
added generate key button and import button
change HostManager.makeLabel() to a computed property on Host
2025-07-01 20:16:55 +01:00
neon443
65eef7f29e added support for saving keys in the keychain
load and save yk
added savetokeychain to save a key to the keychain
added getfromkeycahin to get a key from the keychain
fix generatekey

added apple's cryptokit in the keychain sample code (keychain layer dir)
2025-07-01 17:41:42 +01:00
neon443
80b83644b4 updated keypair data structure to have an name, passphrase and type
added generateKy to generate a key, currently only rsa
update generateRSA to return the Data for pub and priv, and take a custom size
bell animation better, slightly longer in total and easeinout
added new generate button hardcoded to a rsa 4096
added keytype to define key types (duh)
update getKeys to use the new keypair structure
2025-06-30 16:31:01 +01:00
neon443
24bf52ff16 added textbox to make pretty textboxes with label
updated connectionview to use nice textboxes with labels
put disconnect and minimize on the left
2025-06-30 13:52:24 +01:00
neon443
8e69dfc165 terminalViewContainer is now an observable object
made the session list view more pretty
terminalviewcontaner has a static shared property which is an instance of itself
then it has sessions inside with a dict of uuid:terminalcontainer inside
hostsview is in the section "hosts"
2025-06-29 16:25:49 +01:00
neon443
331a921499 MULTI SESSIONS!!!
terminalviewcontainer has a dict of [handler, terminalView] with a uuid key
each session gets a new uuid, and on disconnect, the session is removed from terminalviewcontainer
sessions list view to reopen sessions
remove multiview
extracted terminalviewcontainer
2025-06-29 15:40:46 +01:00
neon443
4ca3bc035f Awdjfghkahdsgjf;h
id and name were swapped loll
switch back to icloud defaults for hostsmanager
update xcode* themes to camel case
2025-06-29 11:22:29 +01:00
neon443
a4d245caec !!!!!!!!!!
fixed selecting themes - it now actually remembers!!
fix all themes having no names
fix remembering selected themes
added toTheme to return a theme from a themecodable
removed themeNames - its not needed as the names are saved in the ThemeCodable itself
extracted colorcodable and themecodable into their own files
removed all the debug prints
2025-06-29 10:43:47 +01:00
neon443
834fb266e9 theme picker ui is pretty now
added a bunch of builtin htemes
applytheme takes a theme
added builtin themes enum
added decodeloacltheme func
added builtinthemes array property
selectedtheme is now an actual theme instead of an index
its really annoying it doesnt really work rn
2025-06-29 09:59:53 +01:00
neon443
4affc532d9 fix adding new hosts, it will navigate u to a new connection view with a host.blank, and add the host if it doesnt exist
added addhostifneeded
extracted hostskeys stuff to hostkeysview
added nav titles to everything
removed tabs, now just a list
renamed savedHosts -> hosts
2025-06-28 15:37:50 +01:00
neon443
3698232a51 added thememanager view and thempreviw
it uses a lazyhgrid
2025-06-27 20:48:41 +01:00
neon443
56289f0f6d added themes to hostsmanager
added loadthemes
added savethemes
theme is now identifieable
theme has a computed property themecodable to make it easier to convert
extended swiftterm.color to have a colorCodabel property
adding themes amanger ui
2025-06-27 10:59:53 +01:00
neon443
f14492d3fe added applyTheme() function
added SwiftTerm.Color.uiColor extension to get a UIColor from SwiftTerm.Color
rename SSHTerminalView to SSHTerminalDelegate
2025-06-27 10:38:03 +01:00
neon443
73282fa65d adding theme support!!
looking at swiftermapp, it uses string splitting to parse a plist of colours
i couldnt be asked to do this, so i made my own codable types and non codable types to automatically parse the plist lol
anyways might merge the Codable and non codabel types later, but i thik it works now so im leaving it as is rn
moved scrollback restore funcito higher
2025-06-27 10:29:53 +01:00
neon443
42883c4ac9 ok so looking at SwiftTermApp (SwiftTerm's sample app) it uses a specific commit.
surprise surpries, that fixes the ghosting and scroll issues!!!!!!!!!!
this deserves a version bump
2025-06-26 11:35:48 +01:00
neon443
e8ca091d0d move 2025-06-26 10:55:02 +01:00
neon443
d213ce2c05 fix symbol not updating on the fly but everything else does
added automatic string to data conversion for pubkey
renamed symbol to hostsymbol
reduce padding
2025-06-26 10:40:31 +01:00
neon443
642e4a78de added symbols and labels
added makeLabel() to return a string for the host, in order: name, address, uuid
added reorder sypport
added movehost() to reorder
added symbolpreview view to easilty show the symbol and label
added symbol with sf, iscustom, offset vars to help
added a picker to choose the symbol
2025-06-26 09:54:54 +01:00
neon443
76601e0470 made more funcitons throw errors instead of just return, more informative
added name to host
removed hostkey from connectionview as its in keys now
fix crash on force unrap in keypair navigatoin labels
added hostinvalid() to check if the host is invalid
added case notconnected for keyerror
openshell is throwing
moved stuff round
2025-06-25 17:17:47 +01:00
neon443
2548dde85b added keydetail view
added faceid authentication to view private keys
added authwithbiometrics for secure displaying of sensitive data
fix getkeys returns nothing
added centredlabel (hstack with two spacers)
made keypair identifieable
fix alignment of text
2025-06-25 16:46:41 +01:00
neon443
d4b9a4e2ae added keypair protocol
added bell support
added getkeys
added ui to show hostkeys all in one place
2025-06-25 15:49:36 +01:00
neon443
5d80c69152 fixed getAuthMethods - had to auth with none first
rename to testChannel in testexec to prevent confusion
stop write(1 in testexec to prevent printing the output
running testexec will disconnect after 3s, but keep result
read non blocking in testexec
added sshstate unused atm
2025-06-25 11:55:21 +01:00
neon443
f71bd0ddf2 bell ringing backend done now need to actually trigger it
added ring() to ring the bell
terminal is now a fullscreencover
can be dismissed and reopened or disconnected
 - need to make it keep the scrollback
increased sleep between reads
added support for title
added setTitle function, defaults to username@server
increased the buffer to 16384 bytes
2025-06-25 11:12:10 +01:00
neon443
1e3a57d788 added dialogview for custom dialogs
added nice green color
updated debug host
reduced sleep greatly
removed channel checker in sshqueasync loop
set dark mode on the app
gonna start work on async in sshhandler
2025-06-24 12:33:52 +01:00
neon443
3f2c92cd91 massively optimised reading from ssh, reduced cpu usage and energy usage 2025-06-24 09:48:33 +01:00
neon443
1bb761d80e swift 6 underway 2025-06-23 20:33:31 +01:00
neon443
8df8c77c7a implemented actually using Host.publicKey and Host.privateKey to store pubkeys and privkeys
- this gives u icloud synced pub/privkeys
 - per host!!
made it load the key's string representation (if present) into the textboxes to tell the user that the key is there
made the privkey box a securefield to show .... instead of the key

added a handler.go() to handler disconnecting if connected and choosing password/pubkey auth
- really cleaned up the view code
added getPubkey(_: SecKey) to keychainmanager
added SSHErrors - commfail, connectionFail, backenderror
added AuthError - rejectedCreds, notconnected
added KeyError - importpub/privError, pub/priv rejected
made most functions throw in sshhandler
fix memoryLayoutsize(ofvalue to buffer.count in testexec
[weak self] in the async loop to prevent memory leaks i guess
added loccritical for easy red logging
2025-06-23 12:51:41 +01:00
neon443
b691224e39 encryption compliance 2025-06-23 09:41:29 +01:00
neon443
aab1756b5a bump version
remove send Ax256
change powerplug.portrait to power
reduce time from 10_000 to 1_000
remove sending print
add shellview
2025-06-22 19:53:12 +01:00
neon443
b60e8f4eed can kinda type - it gets sent to teh server, but doesnt refres :skulk: 2025-06-22 16:24:21 +01:00
neon443
1cf9518e0f remove terminal string
rewrote authWithPubkey() to not write files and take data direcytly
remove read loop (comment adding it)
readfromchannel returns string
using swifterm to do terminal emulation
2025-06-22 10:51:21 +01:00
neon443
a06de0b4c4 hostsview - list of hosts
hostmanager for loading and saving hosts to defaults
host.debug/.blank as static vars
fix crash on disconnect by checking for connection in timer before checking if channel is open
keychain layer? to convert ed25519 to seckey and back for keychain storage
generate ed25519 via cryptokit
2025-06-20 13:40:20 +01:00
neon443
86dd316e33 added a keymanager and keymanagerview, can ontly generate 4096 rsa rn
uses seckey
2025-06-20 10:31:22 +01:00
neon443
a9eeb55cf6 moved lots of logic into sshHandler
increased deployment target bc i cba rn
2025-06-16 13:50:13 +01:00
neon443
d4e1660728 added a terminal
currently doesnt work
using runestone as the terminal
2025-06-09 17:25:05 +01:00
neon443
e440168a28 Wrote a Host Protocol for easy stroing of hosts
a debugHost for reusable root:root@localhost:2222
blankHost for - well - blank hosts
gonna add userdefaults
added iclodu entitlement
added viewmodifier: foregroundStyle if 17.0+ and foregroundColor for else
2025-06-08 20:54:49 +01:00
neon443
e786d31da9 YESS
now displays shell on screen!!
currently view only :cry but still
2025-06-07 21:18:30 +01:00
neon443
b395876156 trying runloop with dispatchqueue 2025-06-07 20:40:16 +01:00
neon443
d6c00299e9 update icon to remove transperancy, add ci scripts 2025-06-07 19:12:22 +01:00