copy path
copy STDOUT into clipboard
[!NOTE]
example
Copy $ cat file | pbcopy
$ pwd | pbcopy
Copy path from finder
Automator -> Quick Action
Automator -> Apple Script
Copy on run {input, parameters}
try
tell application "Finder" to set the clipboard to POSIX path of (target of window 1 as alias )
on error
beep
end try
return input
end run
create app
[!NOTE|label:references:]
groovyConsole
[!NOTE|label:expection] case: run groovyConsole
from Spolite or Alfred
via Automator.app
[!NOTE|label:tips] Automator.app will create whole bunch of necessary files for app. only need to replace the CFBundleExecutable
filename
Open Automator.app » New » Application
Select Run Shell Script » save to .app with empty shell script
Automator.app » save to an app via script
[!NOTE|label:tips:]
get standalone commands for the script
Copy $ ps aux | grep groovyConsole | grep -v grep
marslo 63030 0.0 1.9 42636292 310724 s008 S+ 2:06PM 0:12.48 /usr/local/opt/openjdk/bin/java -Dsun.awt.keepWorkingSetOnMinimize=true -Xdock:name=GroovyConsole -Xdock:icon=/usr/local/opt/groovy/libexec/lib/groovy.icns -classpath /usr/local/opt/groovy/libexec/lib/groovy-4.0.13.jar -Dscript.name=/usr/local/opt/groovy/libexec/bin/groovyConsole -Dprogram.name=groovyConsole -Dgroovy.starter.conf=/usr/local/opt/groovy/libexec/conf/groovy-starter.conf -Dgroovy.home=/usr/local/opt/groovy/libexec -Dtools.jar=/usr/local/opt/openjdk/lib/tools.jar org.codehaus.groovy.tools.GroovyStarter --main groovy.console.ui.Console --conf /usr/local/opt/groovy/libexec/conf/groovy-starter.conf --classpath .:/usr/local/opt/openjdk/lib/tools.jar:/usr/local/opt/openjdk/lib/dt.jar:/usr/local/opt/groovy/libexec/lib:.
==> which would be:
Copy /usr/local/opt/openjdk/bin/java \
-Dsun.awt.keepWorkingSetOnMinimize=true \
-Xdock:name=GroovyConsole \
-Xdock:icon=/usr/local/opt/groovy/libexec/lib/groovy.icns \
-classpath /usr/local/opt/groovy/libexec/lib/groovy-4.0.13.jar \
-Dscript.name=/usr/local/opt/groovy/libexec/bin/groovyConsole \
-Dprogram.name=groovyConsole \
-Dgroovy.starter.conf=/usr/local/opt/groovy/libexec/conf/groovy-starter.conf \
-Dgroovy.home=/usr/local/opt/groovy/libexec \
-Dtools.jar=/usr/local/opt/openjdk/lib/tools.jar org.codehaus.groovy.tools.GroovyStarter \
--main groovy.console.ui.Console \
--conf /usr/local/opt/groovy/libexec/conf/groovy-starter.conf \
--classpath .:/usr/local/opt/openjdk/lib/tools.jar:/usr/local/opt/openjdk/lib/dt.jar:/usr/local/opt/groovy/libexec/lib:.
Copy $ ps aux | grep groovyConsole | grep -v grep
marslo 50495 0.0 3.4 11683536 577828 ?? S 5:50PM 0:15.85 /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/bin/java -Xdock:name=GroovyConsole -Xdock:icon=/usr/local/opt/groovy/libexec/lib/groovy.icns -Dgroovy.jaxb=jaxb -classpath /usr/local/opt/groovy/libexec/lib/groovy-3.0.6.jar -Dscript.name=/usr/local/opt/groovy/libexec/bin/groovyConsole -Dprogram.name=groovyConsole -Dgroovy.starter.conf=/usr/local/opt/groovy/libexec/conf/groovy-starter.conf -Dgroovy.home=/usr/local/opt/groovy/libexec -Dtools.jar=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar org.codehaus.groovy.tools.GroovyStarter --main groovy.console.ui.Console --conf /usr/local/opt/groovy/libexec/conf/groovy-starter.conf --classpath .:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/dt.jar:/usr/local/opt/groovy/libexec/lib:.
==> which would be:
Copy /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/bin/java \
-Xdock:name=GroovyConsole \
-Xdock:icon=/usr/local/opt/groovy/libexec/lib/groovy.icns \
-Dgroovy.jaxb=jaxb \
-classpath /usr/local/opt/groovy/libexec/lib/groovy-3.0.6.jar \
-Dscript.name=/usr/local/opt/groovy/libexec/bin/groovyConsole \
-Dprogram.name=groovyConsole \
-Dgroovy.starter.conf=/usr/local/opt/groovy/libexec/conf/groovy-starter.conf \
-Dgroovy.home=/usr/local/opt/groovy/libexec \
-Dtools.jar=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar org.codehaus.groovy.tools.GroovyStarter \
--main groovy.console.ui.Console \
--conf /usr/local/opt/groovy/libexec/conf/groovy-starter.conf \
--classpath .:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/dt.jar:/usr/local/opt/groovy/libexec/lib:.
Copy $ cp /usr/local/opt/groovy/libexec/lib/groovy.icns groovyConsole.app/Contents/Resources
$ cat > groovyConsole.app/Contents/MacOS/groovyConsole << EOF
-> #!/usr/bin/env bash
->
-> JAVA_HOME="$( /usr/libexec/java_home -v 21 )"
-> GROOVY_HOME="$( /usr/local/bin/brew --prefix groovy)/libexec"
-> GROOVY_VERSION="$(/usr/bin/sed -rn 's/^[^:]+:[[:blank:]]?([[:digit:].]+)[[:blank:]]?.+$/\1/p' < <(${GROOVY_HOME}/bin/groovy --version))"
->
-> "${JAVA_HOME}"/bin/java \
-> -Dsun.awt.keepWorkingSetOnMinimize=true \
-> -Xdock:name=GroovyConsole \
-> -Xdock:icon="${GROOVY_HOME}"/lib/groovy.icns \
-> -classpath "${GROOVY_HOME}"/lib/groovy-"${GROOVY_VERSION}".jar \
-> -Dscript.name="${GROOVY_HOME}"/bin/groovyConsole \
-> -Dprogram.name=groovyConsole \
-> -Dgroovy.starter.conf="${GROOVY_HOME}"/conf/groovy-starter.conf \
-> -Dgroovy.home="${GROOVY_HOME}" \
-> -Dtools.jar="${JAVA_HOME}"/lib/tools.jar org.codehaus.groovy.tools.GroovyStarter \
-> --main groovy.console.ui.Console \
-> --conf "${GROOVY_HOME}"/conf/groovy-starter.conf \
-> --classpath .:"${JAVA_HOME}"/lib/tools.jar:"${JAVA_HOME}"/lib/dt.jar:"${GROOVY_HOME}"/lib
-> EOF
$ chmod +x groovyConsole.app/Contents/MacOS/groovyConsole
$ ls -1 groovyConsole.app/Contents/MacOS/
Automator Application Stub # ignore it
groovyConsole # â•® <key>CFBundleExecutable</key>
# ╯ <string>groovyConsole</string>
$ mv groovyConsole.app/ /Applications/
Copy $ touch groovyConsole.app/Contents/MacOS/groovyConsole
$ cat > groovyConsole.app/Contents/MacOS/groovyConsole << EOF
-> #!/usr/bin/env bash
->
-> JAVA_HOME="$( /usr/local/bin/brew --prefix java)"
-> # JAVA_HOME="$( /usr/local/bin/brew --prefix openjdk@17)"
-> GROOVY_VERSION="$(/usr/local/bin/groovy --version | /usr/local/opt/gnu-sed/libexec/gnubin/sed -rn 's/^[^:]+:\s*([0-9\.]+).*$/\1/p')"
-> GROOVY_HOME="$( /usr/local/bin/brew --prefix groovy)/libexec"
->
-> "${JAVA_HOME}"/bin/java \
-> -Dsun.awt.keepWorkingSetOnMinimize=true \
-> -Xdock:name=GroovyConsole \
-> -Xdock:icon="${GROOVY_HOME}"/lib/groovy.icns \
-> -classpath "${GROOVY_HOME}"/lib/groovy-"${GROOVY_VERSION}".jar \
-> -Dscript.name="${GROOVY_HOME}"/bin/groovyConsole \
-> -Dprogram.name=groovyConsole \
-> -Dgroovy.starter.conf="${GROOVY_HOME}"/conf/groovy-starter.conf \
-> -Dgroovy.home="${GROOVY_HOME}" \
-> -Dtools.jar="${JAVA_HOME}"/lib/tools.jar \
-> org.codehaus.groovy.tools.GroovyStarter \
-> --main groovy.console.ui.Console \
-> --conf "${GROOVY_HOME}"/conf/groovy-starter.conf \
-> --classpath .:"${JAVA_HOME}"/lib/tools.jar:"${JAVA_HOME}"/lib/dt.jar:"${GROOVY_HOME}"/lib:.
-> EOF
# or
$ cat > groovyConsole.app/Contents/MacOS/groovyConsole << EOF
-> #!/bin/bash
-> /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/bin/java \\
-> -Xdock:name=GroovyConsole \\
-> -Xdock:icon=/usr/local/opt/groovy/libexec/lib/groovy.icns \\
-> -Dgroovy.jaxb=jaxb \\
-> -classpath /usr/local/opt/groovy/libexec/lib/groovy-3.0.6.jar \\
-> -Dscript.name=/usr/local/opt/groovy/libexec/bin/groovyConsole \\
-> -Dprogram.name=groovyConsole \\
-> -Dgroovy.starter.conf=/usr/local/opt/groovy/libexec/conf/groovy-starter.conf \\
-> -Dgroovy.home=/usr/local/opt/groovy/libexec \\
-> -Dtools.jar=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar org.codehaus.groovy.tools.GroovyStarter \\
-> --main groovy.console.ui.Console \\
-> --conf /usr/local/opt/groovy/libexec/conf/groovy-starter.conf \\
-> --classpath .:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/dt.jar:/usr/local/opt/groovy/libexec/lib:.
-> EOF
$ chmod +x groovyConsole.app/Contents/MacOS/groovyConsole
try validate via execute groovyConsole.app/Contents/MacOS/groovyConsole
directly. to see whether if the groovyConsole will be opened.
Automator.app » show in Alfred modify Info.plist
Copy $ vim groovyConsole.app/Contents/Info.plist
...
< key > CFBundleExecutable < /key >
< string > groovyConsole < /string > « the script name to MacOS/groovyConsole
< key > CFBundleIconFile < /key >
< string > groovy < /string > « for icon in Resources/groovy.icns
< key > CFBundleIdentifier < /key >
< string > com.apple.groovyConsole < /string >
...
original
Copy < key > CFBundleExecutable < /key >
< string > Application Stub < /string >
< key > CFBundleIconFile < /key >
< string > AutomatorApplet < /string >
< key > CFBundleIdentifier < /key >
< string > com.apple.automator.groovyConsole < /string >
additional
set the icon for new app
optional
Copy $ cp /usr/local/opt/groovy/libexec/lib/groovy.icns groovyConsole.app/Contents/Resources
or
Copy $ ln -sf /usr/local/opt/groovy/libexec/lib/groovy.icns groovyConsole.app/Contents/Resources/groovy.icns
python IDLE
via automator.app
script
Copy #/usr/bin/env bash
PYTHON_SHORT_VERSION=$(/usr/local/opt/gnu-sed/libexec/gnubin/sed -rn 's/^([^[0-9]+)([0-9]+\.[0-9]+).*$/\2/p' < <(/usr/local/bin/python3 --version) )
/usr/bin/open "$( /usr/local/bin/brew --prefix python@ ${PYTHON_SHORT_VERSION})" /IDLE \ 3.app
icon
Copy $ PYTHON_SHORT_VERSION=$(/usr/local/opt/gnu-sed/libexec/gnubin/sed -rn 's/^([^[0-9]+)([0-9]+\.[0-9]+).*$/\2/p' < <(/usr/local/bin/python3 --version) )
$ cp "$(/usr/local/bin/brew --prefix python@${PYTHON_SHORT_VERSION})"/IDLE\ 3.app/Contents/Resources/IDLE.icns IDLE.app/Contents/Resources/
# modify IDLE.app/Contents/Info.plist
< key > CFBundleIconFile < /key >
< string > IDLE.icns < /string >
## original
< key > CFBundleIconFile < /key >
< string > ApplicationStub < /string >
others
Copy $ cat IDLE.app/Contents/Info.plist
< key > CFBundleGetInfoString < /key >
< string > 3.11.6, © 2001-2023 Python Software Foundation < /string >
< key > CFBundleIconFile < /key >
< string > IDLE.icns < /string >
< key > CFBundleIdentifier < /key >
< string > org.python.IDLE < /string >
via appify
[!NOTE|label:references:]
shell script
Copy $ cat > ~/IDLE << EOF
#!/usr/bin/env bash
PYTHON_SHORT_VERSION=$(/usr/local/opt/gnu-sed/libexec/gnubin/sed -rn 's/^([^[0-9]+)([0-9]+\.[0-9]+).*$/\2/p' < <(/usr/local/bin/python3 --version) )
/usr/bin/open "$( /usr/local/bin/brew --prefix python@${PYTHON_SHORT_VERSION})"/IDLE\ 3.app
EOF
create app via appify
Copy $ icon= $( brew --prefix python@3.12 ) /IDLE \ 3.app/Contents/Resources/IDLE.icns
$ ./appify.sh -i ${icon} -s IDLE -n IDLE
$ mv IDLE.app /Applications
more:
Info.plist
Copy <? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
< key >CFBundleExecutable</ key >
< string >IDLE</ string >
< key >CFBundleGetInfoString</ key >
< string >IDLE</ string >
< key >CFBundleIconFile</ key >
< string >IDLE</ string >
< key >CFBundleName</ key >
< string >IDLE</ string >
< key >CFBundlePackageType</ key >
< string >APPL</ string >
< key >CFBundleIdentifier</ key >
< string >org.python.IDLE</ string >
</ dict >
</ plist >
create dmg
Copy $ hdiutil create -volname IDLE -srcfolder ~/Desktop/IDLE.app -ov IDLE.dmg
....
created: /Users/marslo/Desktop/IDLE.dmg
change default python3
Copy $ ln -sf /usr/local/bin/python3.12 /usr/local/bin/python3
$ ln -sf /usr/local/bin/python3.12-config /usr/local/bin/python3-config
# or
$ brew unlink python@3.11
$ brew unlink python@3.12
$ brew link --force python@3.12
# or
$ brew link --force --overwrite python@3.12
enable Technical Symbols
Input Method ⇢ Show emoji and symbols
Open Customized List ⇢ Technical Symbols
and snippets
go to System Preferences ⇢ Keyboard ⇢ Test
add snippets as below
finally
others
Copy $ curl --create-dirs \
-O \
--output-dir ~/.fonts \
https://dtinth.github.io/comic-mono-font/ComicMono.ttf && \
curl --create-dirs \
-O \
--output-dir ~/.fonts \
https://dtinth.github.io/comic-mono-font/ComicMono-Bold.ttf &&
fc-cache -f -v
shutdown mac via commands
Copy $ osascript -e 'tell app ' loginwindow ' to «event aevtrsdn»'
Copy $ pmset displaysleepnow
launch apps
create image
create dmg image
Copy $ hdiutil create -volname "Volume Name" \
-srcfolder /path/to/folder \
-ov diskimage.dmg
i.e.:
Copy $ hdiutil create -volname 'groovyConsole' \
-srcfolder ~/Desktop/groovyConsole.app \
-ov groovyConsole.dmg
.......................
created: /Users/marslo/Desktop/groovyConsole.dmg
create encrypted image
Copy $ hdiutil create -encryption \
-stdinpass \
-volname "Volume Name" \
-srcfolder /path/to/folder \
-ov encrypted.dmg
create dvd (for .iso, .img, .dmg)
Copy $ hdiutil burn /path/to/image_file
create disk image from volume
Copy $ sudo hdiutil create ~/Desktop/ < nam e > .dmg -srcdevice /dev/ < disk-identifie r >
i.e.:
Copy $ sudo hdiutil create ~/Desktop/Lion.dmg -srcdevice /dev/disk2s4
create disk image from a folder
Copy $ hdiutil create < imagenam e > .dmg -volname "<name of volume>" -srcfolder /path/to/folder '
i.e.:
Copy $ hdiutil create ~/Desktop/marsloTest.dmg -volname 'marslo test' -srcfolder ~/Desktop/marsloTest/
created: /Users/marslo/Desktop/marsloTest.dmg
setup read & write dmg
Copy $ hdiutil create ~/Desktop/mTest.dmg \
-volname "Marslo Test" \
-srcfolder ~/Desktop/mTest \
-size 1g \
-format UDRW
create encrypted disk image
Copy $ hdiutil create mEncrypted.dmg \
-encryption \
-size 1g \
-volname "mEncrypted Disk Image" \
-fs JHFS+ \
-srcfolder /path/to/folder \
Enter a new password to secure "mEncrypted.dmg" :
Re-enter new password:
....
created: /Users/marslo/Desktop/mEncrypted.dmg
hdiutil create encrypted image resize the disk image
Copy $ hdiutil resize -size < new siz e > < imagenam e > .dmg
i.e.:
Copy $ hdiutil resize -size 2g mEncrypted.dmg
restore disk images
Copy $ sudo asr restore --source < disk imag e > .dmg --target /Volumes/ < volume nam e >
disk
check volumn info
Copy $ diskutil info < path/to/volum n >
i.e.:
Copy $ diskutil info /Volumes/iMarsloOSX/
Device Identifier: disk1s5
Device Node: /dev/disk1s5
Whole: No
Part of Whole: disk1
Volume Name: iMarsloOSX
Mounted: Yes
Mount Point: /
list disks and volumns
or
Copy $ diskutil list disk1
or lsblk
Copy $ docker run cmd.cat/lsblk lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 16G 0 disk
└─vda1 254:1 0 16G 0 part /etc/hosts
or lshw
Copy $ docker run cmd.cat/lshw lshw -class disk
*-virtio1
description: Virtual I/O device
physical id: 0
bus info: virtio@1
logical name: vda
configuration: driver=virtio_blk
list the apfs info
Copy $ diskutil apfs list
APFS Container (1 found )
|
+-- Container disk1 ********-****-****-****-************
====================================================
APFS Container Reference: disk1
Size (Capacity Ceiling ): 250685575168 B ( 250.7 GB )
Capacity In Use By Volumes: 176258826240 B (176.3 GB ) ( 70.3% used )
Capacity Not Allocated: 74426748928 B (74.4 GB ) ( 29.7% free )
|
+- < Physical Store.. . >
|
+- > ...
check detail diskage usage
Copy $ sudo fs_usage
21:03:47 ioctl 0.000003 iTerm2
21:03:47 ioctl 0.000003 iTerm2
21:03:47 close 0.000031 privoxy
21:03:47 select 0.000004 privoxy
...
erase disk
File System Abbreviation Mac OS Extended (Journaled)
Copy $ diskutil listFilesystems
...
-------------------------------------------------------------------------------
PERSONALITY USER VISIBLE NAME
-------------------------------------------------------------------------------
Case-sensitive APFS APFS (Case-sensitive)
(or) APFSX
APFS APFS
(or) APFSI
ExFAT ExFAT
Free Space Free Space
(or) FREE
MS-DOS MS-DOS (FAT)
MS-DOS FAT12 MS-DOS (FAT12)
MS-DOS FAT16 MS-DOS (FAT16)
MS-DOS FAT32 MS-DOS (FAT32)
(or) FAT32
HFS+ Mac OS Extended
Case-sensitive HFS+ Mac OS Extended (Case-sensitive)
(or) HFSX
Case-sensitive Journaled HFS+ Mac OS Extended (Case-sensitive, Journaled)
(or) JHFSX
Journaled HFS+ Mac OS Extended (Journaled)
(or) JHFS+
UFSD_NTFS Microsoft NTFS
ExFAT
Copy $ diskutil eraseDisk ExFAT iMarsloUSB /dev/disk2
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk2s2 as ExFAT with name iMarsloUSB
Volume name : iMarsloUSB
Partition offset : 411648 sectors (210763776 bytes)
Volume size : 246534144 sectors (126225481728 bytes)
Bytes per sector : 512
Bytes per cluster: 131072
FAT offset : 2048 sectors (1048576 bytes)
# FAT sectors : 8192
Number of FATs : 1
Cluster offset : 10240 sectors (5242880 bytes)
# Clusters : 962984
Volume Serial # : 5ff81490
Bitmap start : 2
Bitmap file size : 120373
Upcase start : 3
Upcase file size : 5836
Root start : 4
Mounting disk
Finished erase on disk2
check
Copy $ diskutil info disk2s1
Device Identifier: disk2s1
Device Node: /dev/disk2s1
Whole: No
Part of Whole: disk2
Volume Name: EFI
Mounted: No
Partition Type: EFI
File System Personality: MS-DOS FAT32
Type (Bundle): msdos
Name (User Visible): MS-DOS (FAT32)
...
...
$ diskutil info disk2s2
Device Identifier: disk2s2
Device Node: /dev/disk2s2
Whole: No
Part of Whole: disk2
Volume Name: iMarsloUSB
Mounted: Yes
Mount Point: /Volumes/iMarsloUSB
Partition Type: Microsoft Basic Data
File System Personality: ExFAT
Type (Bundle): exfat
Name (User Visible): ExFAT
...
...
Verifying and Repairing Volumes
Copy $ diskutil verifyVolume /Volumes/<volume name>
$ diskutil repairVolume /Volumes/<volume name>
rename volume
Copy $ diskutil rename "<current name of volume>" "<new name>"
Partitioning a Disk
reference:
GPT
: GUID Partition Table
Copy $ diskutil partitionDisk /dev/disk2 GPT JHFS+ New 0b
multiple partitions
Copy $ diskutil partitionDisk /dev/disk2 GPT \
JHFS+ First 10g \
JHFS+ Second 10g \
JHFS+ Third 10g \
JHFS+ Fourth 10g \
JHFS+ Fifth 0b
Splitting Partitions
Copy $ diskutil splitPartition /dev/disk2s6 \
JHFS+ Test 10GB \
JHFS+ Test2 0b
Merging Partitions
Copy $ diskutil mergePartitions \
JHFS+ \
NewName \
<first disk identifier in range> \
<last disk identifier in range>
i.e.:
Copy $ diskutil mergePartitions JHFS+ NewName disk2s4 disk2s6
check usb
Copy $ system_profiler SPUSBDataType
or get xml format
Copy $ system_profiler -xml SPUSBDataType
or
Copy $ ioreg -p IOUSB -w0 -l
or get device name
Copy $ ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*'
disable startup music
Copy $ sudo nvram SystemAudioVolume=" "
3D lock screen
Copy $ /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
take screenshot after 3 sec
Copy $ screencapture -T 3 -t jpg -P delayedpic.jpg
setup welcome text in login screen
Copy $ sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText 'Awesome Marslo!!'
show message on desktop
Copy $ sudo jamf displayMessage -message "Hello World!"
modify font in plist
original
Copy $ defaults read ~/Library/Preferences/groovy.console.ui.plist
{
"/groovy/console/ui/" = {
autoClearOutput = true;
compilerPhase = 4;
currentFileChooserDir = "/Users/marslo/Desktop";
decompiledFontSize = 12;
fontSize = 18;
frameHeight = 600;
frameWidth = 800;
frameX = 198;
frameY = 201;
horizontalSplitterLocation = 100;
inputAreaHeight = 576;
inputAreaWidth = 1622;
outputAreaHeight = 354;
outputAreaWidth = 1676;
showClosureClasses = false;
showIndyBytecode = false;
showScriptClass = true;
showScriptFreeForm = false;
showScriptInOutput = false;
showTreeView = true;
threadInterrupt = true;
verticalSplitterLocation = 100;
};
}
or
Copy $ /usr/libexec/PlistBuddy -c 'print ":/groovy/console/ui/:fontSize"' ~/Library/Preferences/groovy.console.ui.plist
18
change
Copy $ /usr/libexec/PlistBuddy -c 'Set ":/groovy/console/ui/:fontSize" 24' ~/Library/Preferences/groovy.console.ui.plist
$ /usr/libexec/PlistBuddy -c 'Print ":/groovy/console/ui/:fontSize"' ~/Library/Preferences/groovy.console.ui.plist
24
show process details
Copy $ xcrun simctl list
$ open -a Simulator --args -CurrentDeviceUDID <your device UDID>
install the application on the device
Copy $ xcrun simctl install <your device UDID> <path to application bundle>
$ xcrun simctl launch <your device UDID> <app bundle identifier>
or
Copy $ open -a Simulator.app
or
Copy $ open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
Last updated 8 months ago