102 Commits
Author SHA1 Message Date
Michael 65222a260e Updated system models 2025-08-02 18:41:24 -04:00
Michael 425e14305b Move portable dictionaries to -dictionaryValueForTarget:
Gives dictionaries greater context of which operation is in progress

As part of this, during copies, defaults are not stripped. Copy objects whole. Only strip defaults when we want to save to disk or cloud.
2025-01-11 15:48:19 -05:00
Michael 7589009864 Move mutability declaration to a class property so that it can be accessed in convenience initializer
Instance type property for mutability mirrors the class type
2024-08-14 18:29:53 -04:00
Michael 4aa9659aab Resolve small deprecation warnings 2024-07-11 07:38:03 -04:00
Michael e94594ebc7 Refactor logging system to completely ditch wrapping os_log 2024-07-09 04:28:53 -04:00
Michael 705e821dc7 Fix incorrectly index localization that can cause crash 2024-07-07 11:58:32 -04:00
Michael 94cda5b4ee Modify built in extensions to be thread safe 2024-07-07 11:58:10 -04:00
Michael d9e28f09dd Modify copy operations 2024-07-05 14:13:33 -04:00
Michael 07c0d3b6a0 Move Standard Release and Debug to sandbox
This is a work in progress to move Standard Release and Debug build schemes to sandboxed environment.

To accomplish this, the group identifier has changed to com.codeux.apps.textual-common so that it does not clash with the bundle identifier of the app. Because of this change, all contents from the previous group container has to be migrated. TPCResourceManager has been extended to accomplish this.

TPCResourceManager will automatically copy files to the new group container then prompt the user asking if they want to delete the old. File migration is tuned so that failure to copy one file does not stop the entire operation.

It will also migrate preference keys.

TPCResourceManager will also be setup to migrate Mac App Store installations at a later date using nearly the same logic patterns. That is not implemented yet.
2024-07-04 21:39:36 -04:00
Michael 4b1933e87c Stop Xcode nagging about updating settings
Declined all
2024-07-02 17:14:37 -04:00
Michael 55d355a91b Declare -immutableClass property in all mutable classes 2024-07-02 17:10:21 -04:00
Michael e72e64f9ca Delete App Store build scheme
Deletes all iCloud related code as well
2024-06-30 21:12:51 -04:00
Michael 6964a6a953 Update extensions in extras installers for latest changes 2024-06-30 13:38:01 -04:00
Michael d76172f122 Modify bundled plugins to use plugin logging subsystem 2024-06-30 11:45:30 -04:00
Michael 1823ba0a65 Update target version for bundled plugins 2024-06-30 02:46:31 -04:00
Michael 5a528071ad Modernize codebase
- Removed all deprecated Textual code. It is likely there are no plugins that were using this. The minimum plugin version will be bumped up just incase to force all plugins to be recompiled to load.
- Removed a bunch of macros and initialization check logic that was previously in place to protect against plugin developers trying to abuse the codebase. We need to stop caring about that because it just adds unnecessary overhead.
- Many initializers were cleaned up. -init is now expressly marked as unavailable and throws a proper exception where appropriate.
2024-06-30 02:44:47 -04:00
Michael f5ae3653c6 Modernize mutating classes
All classes that have an immutable parent with a mutating child is now backed by either XRPortablePropertyObject or XRPortablePropertyDict. These base classes, which are declared by Cocoa Extensions, abstract away A LOT of logic involved for initialization, copying, and mutating properties.

A lot of this logic was loosely copy and pasted between classes. Now it is accessible and highly configurable in one location.

As part of this change, all classes that inherit from these base classes now return references on -copy if the underlying object is immutable already. There are some classes that do a little state mutation internally, even if outwardly they are immutable. Risk has been assessed and having the state information mutated and shared between what are supposed to be copied instances will do no harm.
2024-06-30 02:44:26 -04:00
Michael 888866e208 Modify screen refresh rate to exclude larger range 2024-06-22 11:05:12 -04:00
Michael 18991806cb Modify output of style command
Appearance information is now more descriptive including information on whether the sidebars and style are same appearance.  I did not include the helper functions -descriptionForThemeAppearance: and related in main app because it seemed incredibly niche.
2024-06-22 10:59:47 -04:00
Michael 10cacaa07e Remove WebKit2 from output of style command
This information is now pretty gray. There can be no WK2 views, some, or all. This seems easier solution as this information is not very important to begin with.
2024-06-22 10:27:09 -04:00
Michael 8e7ced64d6 Remove if statement for WebKit2
If there are zero WK2 processes, this function will return anyways. -webKit2Enabled returning NO does not indicate there are zero WK2 views. It just means no more are allowed.
2024-06-22 10:26:15 -04:00
Michael 2174512d67 Remove dash in output of style command 2024-06-22 10:23:16 -04:00
Michael 6526a63b30 Modify string files to improve readability
Specifically for strings that are multiline
2024-06-21 21:29:12 -04:00
Michael 8d28e428f5 Fix many, many typos
Import external libraries with similar fixes as well
2024-06-21 20:42:32 -04:00
Michael ae1621d199 Observe for WK2 crashes using private API
Disable WK2 until app relaunch if crash is detected

Only the view that is crashed is reloaded. Views that are already on WK2 will remain so until a forced style reload or they crash as well.
2024-06-19 19:37:19 -04:00
Michael 2c443adb43 Update Cocoa Extensions
- NSObject helpers for sync/async calls using GCD were deprecated as it just makes things slower
- NSObjectIsEmpty() was deprecated because it was lazy and made things slower
2024-06-15 22:27:12 -04:00
Michael ba2971f5e7 Bundle Caffeine with app instead of requiring installer 2024-06-15 18:28:49 -04:00
Michael 23773885ae Rename folder for user insights extension
Missed in ac731362b
2024-06-15 17:31:16 -04:00
Michael 1422aa5f7e Delete remainder of brag spam extension files 2024-06-15 17:12:24 -04:00
Michael ca450e45cf Rename built-in extensions to have friendlier names 2024-06-15 17:12:11 -04:00
Michael ac731362b9 Rename spammer paradise extension to user insights
This extension gives insights into channel users such as listing clones or finding users that match a specific condition. It also now houses the brag command which gives insight on the local user.
2024-06-15 17:07:48 -04:00
Michael cfe84b529a Value is an integer and can't be nil 2024-06-15 17:01:04 -04:00
Michael 8b56063e9c Merge brag spam into spammer paradise extension
I did not see much reason to build and keep an entire extension around to serve one single command. Merging it into spammer paradise was the most logical step given the name of the extension.
2024-06-15 16:59:57 -04:00
Michael d57110829a Little typos 2024-06-15 11:05:49 -04:00
Michael c0f70468ec TFW inability to spell 2024-06-14 20:39:13 -04:00
Michael 215d11d6be Replace references to deprecated state control code 2024-06-13 19:40:13 -04:00
Michael ea162d600d Little typos 2024-06-12 19:07:42 -04:00
Michael 88fa57a645 Small language change 2024-05-14 17:20:57 -04:00
Michael e86cd7bd77 Only show screen refresh rate when != 60 2024-05-14 17:20:43 -04:00
Michael 9091d8b332 Update model list 2024-05-13 22:44:59 -04:00
Michael 8f1482f7b4 Fix Mac Studio model info
It is 20 cores. Not 20 inches. Don't know where my mind was.
2023-03-16 18:24:30 -04:00
Michael 82b65fa7a4 Update plugin to work with latest libressl 2023-03-15 13:48:07 -04:00
Michael 6f16667bb4 Show CPU info by default 2023-03-15 12:17:34 -04:00
Michael 7dfa294949 Update Cocoa Extensions
- Fixed a mistake I made in unarchiving colors from defaults.
- Renamed a property
2023-03-15 12:16:37 -04:00
Michael e9efd398b4 2023 not 2013 2023-03-15 07:31:37 -04:00
Michael 5a3df44693 Modify behavior of system information comnmands
All commands now accept "quiet" as an argument to specify the contents should not be presented only to self.
2023-03-14 20:39:37 -04:00
Michael bbc3c3392d Remove sending serial number to Apple
This feature for requesting additional model information was always just a novelty. And with Apple moving to random serial numbers, it is not worth time investment to further reverse engineer their private web services.
2023-03-14 20:38:46 -04:00
Michael 92c05a7668 Mac model list spring cleaning
All Macs that are not compatible with macOS 10.13 or greater have been removed from the list. A lot of other redundant information, such as specifying "retina", "M1", etc, for some models, has been removed. This information can be derived from other parts of the system information command. The date on which a model has been released no longer have a prefix to determine when in the year the release occurred if not more than one release occurred in the year.
2023-03-14 18:33:14 -04:00
Michael b1d0670353 Output Apple Silicon CPU info 2023-03-14 15:49:25 -04:00
Michael fa075f8249 Hide GPU info on Apple Silicon 2023-03-14 15:01:55 -04:00