Is it possible to change the default window size of a .txt file in TextEdit?

Solution 1:

Instead of changing the default windows size, unless you want to make it permanent and you can just change it in TextEdit > Preferences... then, you can use the following example AppleScript code to open the document in TextEdit and set its size and position on the screen.

First, open the target file, resize and position it on the screen where you want it and the use the following AppleScript code to get the bounds of the document window to use going forward.

tell application "TextEdit" to get bounds of front window

It will return a list, e.g.: {0, 22, 900, 600}, to use with the set bounds ... command.

set targetFile to POSIX path of (path to documents folder) & "Filename.txt"

tell application "TextEdit"
    activate
    open targetFile
    set bounds of front window to {0, 22, 900, 600}
end tell

Note: The reason I'm suggesting the above method is because while one can technically change the default size of the document window programmatically nonetheless since TextEdit doesn't support a position property it makes sense to use the bounds property as the first two list items in the bounds property are its position.

However, if you really want to change the default size prior to opening the target document regardless of it position, here is the information surrounding the default window size. Under TextEdit > Preferences... > New Document > Window Size the default Width is 90 characters and the default Height is 30 lines. With these defaults there are no keys in the com.apple.TextEdit.plist file for this however the corresponding keys are WidthInChars and HeightInChars, which support an integer value.

You'd need to test for the existence of these keys and capture their values so as to have something to reset to after opening the target document. If they are the true defaults, the keys will not exist and you can temporarily set a integer value for these keys, open the target document and then delete the keys. The target document window will open with the new values at the default location of TextEdit's choice, not yours. If you want it in a different location you'd need to use set bounds ..., which defeats programmatically temporarily changing the defaults or the existing setting if not the default values.

Example code using the defaults command:

defaults read $HOME/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist WidthInChars
defaults read $HOME/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist HeightInChars

defaults write $HOME/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist WidthInChars -int 120
defaults write $HOME/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist HeightInChars -int 50

defaults delete $HOME/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist WidthInChars
defaults delete $HOME/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist HeightInChars

These can be used in a do shell script command using set variableName to do shell script "defaults read ..." and then write the logic flow based on what's returned.

If you really want to go this route and need help with the coding, let me know.

Also note that testing surrounding this was done under macOS 10.12 and may be different in previous major OS version releases.