User Tools

Site Tools


apple

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
apple [2011/04/29 23:49]
dblume created
apple [2023/02/28 17:14] (current)
dblume [BSD vs. Linux commands]
Line 1: Line 1:
-xxx+====== Apple ====== 
 + 
 +First time configuration of a new Macintosh. Updated for macOS Sierra 10.12 
 + 
 +===== Configuration ===== 
 + 
 +  * System Preferences: 
 +    * Trackpad -> Tap to Click (For not having to press hard for a click.) 
 +    * Tap-and-drag: Accessibility -> Pointer Control -> Trackpad Options and enable 'Dragging (without) Drag Lock' 
 +  * Open the Photos app, and drag a userpic to it. Then change your userpic in the System Preferences. 
 +  * Get [[http://www.google.com/chrome/intl/en/landing_chrome.html?hl=en&platform=mac|Chrome]] (Login and sync.) 
 +  * [[http://www.tekrevue.com/tip/show-path-finder-title-bar/|Show the full path in the finder]] with <code>defaults write com.apple.finder _FXShowPosixPathInTitle -bool true; killall Finder</code> 
 +  * System Preferences: 
 +    * Mouse  
 +      * Make tracking speed much faster! 
 +      * Enable Secondary click for the right mouse button 
 +      * 2017-01-15 (still needed): Consider [[http://pilotmoon.com/scrollreverser/|Scroll Reverser]] to have [[http://apple.stackexchange.com/questions/116617/how-to-separate-mouse-and-trackpad-settings|natural scrolling for trackpad, but reversed for the mouse]]. 
 +      * Disable [[http://apple.stackexchange.com/questions/159180/yosemite-disabling-inertia-scrolling-using-scroll-wheel-for-the-mouse|inertia mousewheel scrolling]] with:<code>defaults write .GlobalPreferences com.apple.scrollwheel.scaling -1</code> 
 +      * Get SteerMouse (linked below) to stop wheel acceleration (Or [[http://www.logitech.com/en-us/428/146?section=downloads&bit=&osid=9|Logitech V200 LCC]]) 
 +    * Keyboard  
 +      * Set Key Repeat to fastest, and Delay until Repeat to second shortest. 
 +      * Some apps don't repeat anything because some keys have a character accent menu. To disable: <code>defaults write -g ApplePressAndHoldEnabled -bool false</code> 
 +      * Microsoft Natural Ergonomic Keyboard 4000 doesn't have a current driver. That's OK. 
 +      * Swap the Option and Command keys. 
 +    * Dock 
 +      * Position on Right 
 +      * Automatically show and hide dock 
 +    * iTerm2 
 +      * User Powerline Fonts per [[private:fonts]]. 
 +    * Outlook 
 +      * Turn off auto underline-to-italic, dashes, smart quotes: Preferences -> AutoCorrect then click on the AutoFormat page 
 + 
 +===== Tools Installation ===== 
 + 
 +The old way of installing Command Line Tools from the Terminal doesn't work anymore. But now it can be done from [[https://developer.apple.com/download/more/?=command%20line%20tools|the Developer download site]], not from the Terminal. 
 + 
 +==== BSD vs. Linux commands ==== 
 + 
 +macOS comes with BSD grep pre-installed, which doesn't use the Perl -P flag. 
 + 
 +Go to http://brew.sh/ and run the ruby command. (See [[https://git.dlma.com/dotfiles.git/commit/fc19c7b34f522f3f22a32418c9da55df6b9b5f0e|this .bash_profile change for how we use default names for GNU ctags, find, grep and sed]].) 
 + 
 +  brew install grep 
 +  brew install gnu-sed 
 +  brew install findutils 
 +  brew install ctags 
 +  brew install gawk 
 +  brew install jq 
 +  brew install tree 
 +  brew install httpie 
 +  brew install inetutils  # If you need telnet (maybe nc is good enough?) 
 +  brew install telnet 
 +  brew install gnuplot 
 +  brew install pv 
 +  brew install gnupg 
 +  brew install socat 
 +  brew install wget 
 +  brew install nmap 
 +  brew install tmux 
 +  brew install saulpw/vd/visidata 
 +  brew install ripgrep 
 +  brew install moreutils 
 +  brew install bash-completion. " See .bash_profile 
 +  brew install gitui 
 +  # Maybe also readline if you brew install python3 
 +   
 +  brew install bash 
 +  # Note where it was installed. Then something like... 
 +  sudo ln -s /opt/homebrew/Cellar/bash/5.2.15/bin/bash /usr/local/bin/bash 
 +  sudo echo /usr/local/bin/bash >> /etc/shells 
 +  chsh -s /usr/local/bin/bash 
 + 
 +Log out of that console window and log back in again. 
 + 
 + 
 +===== Tips ===== 
 + 
 +^ Shortcut            ^ Action                                                    ^ 
 +| Command+space       | Spotlight (Very handy!)                                   | 
 +| Command+W           | Close the window.                                         | 
 +| Command+Q           | Quit the application. (Closing its windows isn't enough.) | 
 +| Command+click       | Open the link in another tab.                             | 
 +| Command+Tab         | Switch between applications.                              | 
 +| Command+`           | Switch between windows within the application.            | 
 +| Command+Opt+Esc     | Force Quit the application                                | 
 +| Shift+Opt+Command+V | Paste without formatting                                  | 
 + 
 + 
 +===== Daemons, Agents, Cron, Launchd ===== 
 + 
 +The preferred way to set a repeating task is not to use a cronjob but launchd. :!: Note that there's a breaking change in macOS Catalina. [[https://www.reddit.com/r/MacOS/comments/dffpzj/launchd_agent_no_longer_functions_after_catalina/|Launchd agent no longer functions after Catalina upgrade]]. 
 + 
 +In your ~/bin directory, create a job to run, tag_ip_address.sh 
 + 
 +<code bash tag_ip_address.sh> 
 +#!/usr/bin/env bash 
 +curl --data "`hostname -s`=`ifconfig | /usr/local/bin/grep "inet " | grep -v "127.0.0.1" | \ 
 +sed -E 's/.*inet (([0-9]+.){3}[0-9]+).*/\1/' | perl -p -e 'chomp if eof;s/\n/,/'`&auth=[your secret auth]" "https://kvs.dlma.com" 
 + 
 +sleep 11  # if launched as a daemon, live for 11s to not be detected as buggy. 
 +</code> 
 + 
 +That "sleep 11" is to mitigate the buggy daemon detection mentioned [[https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html|here]]. 
 + 
 +Note that we had to specify the path to the homebrew grep, because LaunchAgent would use the default one instead. 
 + 
 +cd into ~/Library/LaunchAgents or (/Library/LaunchDaemons if it can really be a daemon) and add a new plist file 
 + 
 +<code xml com.dlma.tag_ip_address.plist> 
 +<?xml version="1.0" encoding="UTF-8"?> 
 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
 +  "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
 +<plist version="1.0"> 
 +<dict> 
 +    <key>Label</key> 
 +        <string>com.dlma.tag_ip_address</string> 
 +    <key>Program</key> 
 +        <string>/Users/dblume/bin/tag_ip_address.sh</string> 
 +    <key>StandardOutPath</key> 
 +        <string>/tmp/com.dlma.tag_ip_address.plist.out.txt</string> 
 +    <key>StandardErrorPath</key> 
 +        <string>/tmp/com.dlma.tag_ip_address.plist.err.txt</string> 
 +    <key>StartCalendarInterval</key> 
 +        <dict> 
 +            <key>Hour</key> 
 +            <integer>12</integer> 
 +            <key>Minute</key> 
 +            <integer>0</integer> 
 +        </dict> 
 +</dict> 
 +</plist> 
 +</code> 
 + 
 +Finally, [[http://apple.stackexchange.com/questions/217453/configure-launchd|you need to explicitly load it]]. 
 + 
 +<code bash> 
 +$ launchctl load -w /Library/LaunchDaemons/com.dlma.tag_ip_address.plist 
 +</code> 
 + 
 + 
 +===== Software to Get ===== 
 + 
 +  * [[http://iterm2.com/|iTerm2]] and install your [[http://git.dlma.com/dotfiles.git/|dotfiles]]. 
 +    * Preferences -> Profiles -> Terminal -> uncheck "Save lines to scrollback in alternate screen mode" 
 +    * Install Powerline Fonts per [[private:fonts]]. 
 +  * [[http://www.delicious-monster.com/|Delicious Library]]: Keep track of my physical media. 
 +  * Code Editing 
 +    * [[https://code.visualstudio.com/|Visual Studio Code]] 
 +    * [[http://developer.apple.com/tools/xcode/|XCode]] 
 +  * Paint program 
 +    * [[http://gimp.lisanet.de/Website/Download.html|GIMP]] (Can I find something powerful, free **and** user-friendly?) X11 is frustrating. 
 +    * [[http://paintbrush.sourceforge.net/|PaintBrush]] 
 +    * [[https://github.com/philippec/Pixen|Pixen]] 
 +    * <del>[[http://seashore.sourceforge.net/The_Seashore_Project/Download.html|SeaShore]]</del> No levels adjusting. 
 +    * <del>[[http://www.rdsisemore.com/paintds|PaintDS]]</del> No layers. 
 +    * [[http://www.artrage.com/artrage-demos.html|ArtRage]] 
 + 
 +[[http://foreword.com/2011/05/6796/hack_os_x/|Danelope]] suggests these Image Editors in 2011: 
 + 
 +  * http://gimpshop.com/ 
 +  * http://pixelmator.com/ 
 + 
 +===== Preferences I don't set anymore ===== 
 + 
 +  * [[http://www.mikesel.info/show-hidden-files-mac-os-x-10-7-lion/|Show hidden files]] with <code>defaults write com.apple.Finder AppleShowAllFiles YES; killall Finder</code> 
 +  * Configure [[http://mail.google.com/support/bin/answer.py?answer=81379|mail to use Gmail]]. 
 +  * Cofigure [[http://www.google.com/support/calendar/bin/answer.py?answer=99358#ical|iCal to sync with Google Calendar]]. 
 +  * System Preferences: 
 +    * Keyboard 
 +      * Command Key: Control Panel -> Keyboard -> Modifier Keys... -> swap Command and Control keys 
 +        * Except that [[https://discussions.apple.com/thread/2793826?threadID=2793826&tstart=90|it doesn't persist past logging out]]. 
 +      * [[http://lifehacker.com/5826055/make-your-keyboard-keys-repeat-properly-when-held-down-in-mac-os-x-lion|Make Your Keyboard Keys Repeat Properly When Held Down in Mac OS X Lion (macOS)]]. 
 +  * [[http://quicksilver.en.softonic.com/mac|Quicksilver]]: Reach any program with a few keystrokes. (Eg., Control+space, M for Mail) 
 + 
 + 
 +===== iOS Apps ===== 
 + 
 +Here are iPhone/iPod apps I really want to make. 
 + 
 +  * [[wp>Sokoban|Sokoban]] 
 +  * A [[http://build.last.fm/category/Scrobblers|Scrobbler]] 
 + 
 +==== Sokoban ==== 
 + 
 +[[wp>Sokoban|Sokoban]]: Plenty already exist. What matters here is an intuitive (to me) user control. 
 + 
 +==== Scrobbler ==== 
 + 
 +What matters here is the ability to scrobble what I've played to last.fm directly from my iPhone/iPod. 
 + 
 +====== Prey ====== 
 + 
 +[[https://panel.preyproject.com/]] for when the device goes missing. (Or is stolen by a thief.) 
 + 
 +====== NFS for macOS ====== 
 + 
 +On the server side get your user ID and group ID (id -u; id -g), and update /etc/exports with something like: 
 + 
 +<code> 
 +/path/to/share 10.?.?.?(rw,sync,insecure,all_squash_anonuid=<uid>,anongid=<gid>
 +</code> 
 + 
 +10.?.?.? would be the IP of the Macintosh. (That'll have to be updated every time it changes.)  For a Macintosh to connect, "insecure" was said to be needed. And "all_squash" was needed for the uid and gid to be set.  Restart and check the NFS server with "sudo systemctl restart nfs-server.service; systemctl status nfs-server.service"
 + 
 +Get the "hostname" for the server for the next bit on the client side. Call it jdoe-t3610. 
 + 
 +On the client side, you could manually mount the NFS volume with something like, "<nowiki>nfs://jdoe-t3610/path/to/share</nowiki>" 
 + 
 +Or better, configure automounter by adding a line to <nowiki>/etc/auto_master</nowiki>: 
 + 
 +<code> 
 +/- auto_sandbox -rw 
 +</code> 
 + 
 +And then make the file /etc/auto_sandbox 
 + 
 +<code> 
 +/sandbox nfs://jdoe-t3610/path/to/share 
 +</code> 
 + 
 +For the purpose of P4 client compatibility with the dev system, I use a symbolic link at root. 
 + 
 +<code> 
 +$ sudo ln -s /sandbox/sandbox/stb/ /link_to_p4_root 
 +</code> 
 + 
 +If you want your changes to take effect immediately, 
 + 
 +<code> 
 +$ sudo automount -vc 
 +</code> 
 + 
 +====== Keywords ====== 
 + 
 +aps, todo
apple.1304146170.txt.gz · Last modified: 2021/10/24 23:49 (external edit)