Compare commits

...

108 Commits

Author SHA1 Message Date
Jeffrey Paul a179f412e5 Add 'custompkg/root/etc/skel/Library/user-setup/010.install-cli-tools.sh' 2023-12-22 03:49:08 +00:00
Jeffrey Paul f576c09404 Update 'custompkg/root/etc/skel/Library/user-setup/040.install-homebrew.sh' 2023-12-22 03:48:30 +00:00
Jeffrey Paul 964e6b714a Update 'custompkg/root/etc/skel/Library/user-setup/040.install-homebrew.sh' 2023-12-22 03:48:06 +00:00
Jeffrey Paul 05c7ca20e3 Update 'custompkg/root/etc/skel/Library/user-setup/050.link-rubygems-dir.sh' 2023-12-22 03:47:51 +00:00
Jeffrey Paul b99bf6fa40 Update 'custompkg/root/etc/skel/Library/user-setup/050.set-user-preferences.sh' 2023-12-22 03:47:35 +00:00
Jeffrey Paul d03c1e4b86 Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh'
fix bug with cask app dir install path
2021-11-23 02:21:10 +00:00
Jeffrey Paul e43128be70 Update 'README.md' 2021-11-02 01:06:10 +00:00
Jeffrey Paul 559d0ed93b update pip first before installing packages 2021-09-12 05:24:38 +00:00
Jeffrey Paul c9c42cbec7 gpg-agent comes with gnupg>2 2021-09-12 05:09:54 +00:00
Jeffrey Paul 8c9fc1e828 Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2021-09-12 05:08:40 +00:00
Jeffrey Paul 40e9661f33 eloston chromium (ungoogled) instead of google chrome 2021-09-11 02:42:27 +00:00
Jeffrey Paul 4dc78f5a84 load desktop pictures from the repo 2021-09-11 02:41:10 +00:00
Jeffrey Paul f672bb4ce8 add homebrew path to bashrc.d 2021-09-11 02:34:25 +00:00
Jeffrey Paul f3b239f28a Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2021-09-11 00:34:29 +00:00
Jeffrey Paul c798cc2063 Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2021-09-11 00:29:59 +00:00
Jeffrey Paul 2d76033a1e install apps in home directory 2021-09-10 22:49:10 +00:00
Jeffrey Paul d969f2dd99 099.git-config.sh 2021-09-10 22:45:57 +00:00
Jeffrey Paul 269986ae8b caskroom no longer uses a subcommand 2021-09-10 22:43:35 +00:00
Jeffrey Paul 68406c599a Update 'README.md' 2021-09-10 22:39:02 +00:00
Jeffrey Paul 07ba7eacb6 Update 'README.md' 2021-09-10 22:38:43 +00:00
Jeffrey Paul b285f38663 Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2021-09-10 22:37:34 +00:00
Jeffrey Paul 9fa18464a1 Update 'README.md' 2021-09-10 22:35:45 +00:00
Jeffrey Paul 5c49c3494b make sure homebrew path is set when installing 2021-09-10 22:33:42 +00:00
Jeffrey Paul bbb0814360 make sure homebrew path is set when installing 2021-09-10 22:33:24 +00:00
Jeffrey Paul abfc7dd910 use pip3 instead of pip because it's 2021 already 2021-09-10 22:30:35 +00:00
Jeffrey Paul 9005f09844 Update 'install.sh' 2021-09-10 22:29:29 +00:00
Jeffrey Paul 0d53d60bec Update 'install.sh' 2021-09-10 22:28:29 +00:00
Jeffrey Paul effff83698 Update 'install.sh' 2021-09-10 22:25:54 +00:00
Jeffrey Paul fe430b04b6 Update 'install.sh'
update downloaded repo for iterative development
2021-09-10 22:20:59 +00:00
Jeffrey Paul fbf6534f41 Update 'install.sh'
little bit of housekeeping in network install script
2021-09-10 22:18:13 +00:00
Jeffrey Paul fd2eb9f84b Update 'install.sh'
make sure we pick up updated path after each run
2021-09-10 22:16:21 +00:00
Jeffrey Paul 14ca9e8697 Add 'custompkg/root/etc/skel/Library/bashrc.d/000.nix.sh' 2020-06-07 18:36:57 +00:00
Jeffrey Paul 2725748e47 Delete 'custompkg/root/etc/skel/Library/bashrc.d/100.homebrew-paths.sh' 2020-06-07 18:36:10 +00:00
Jeffrey Paul 9eb7da018e Delete 'custompkg/root/etc/skel/Library/bashrc.d/100.caskroom-dest.sh' 2020-06-07 18:35:55 +00:00
Jeffrey Paul 7ee336145b Delete 'custompkg/root/etc/skel/Library/bashrc.d/200.google-cloud-sdk.sh' 2020-06-07 18:35:45 +00:00
Jeffrey Paul 8bb822e4ba Delete 'custompkg/root/etc/skel/Library/bashrc.d/150.ldflags.sh' 2020-06-07 18:35:28 +00:00
Jeffrey Paul 9fb45b2621 only use brew if brew is installed 2020-06-07 18:34:16 +00:00
Jeffrey Paul 80ae2bea99 Update 'custompkg/root/etc/skel/Library/profile.d/900.gpg-agent.sh'
look to nix for pinentry not homebrew
2020-06-07 18:33:44 +00:00
Jeffrey Paul c17f016d68 Update 'custompkg/root/etc/skel/Library/bashrc.d/100.disable-spyware.sh'
remove gcloud spyware optout on each and every shell invocation (moved it to install-time)
2020-05-08 17:50:33 +00:00
Jeffrey Paul 3eee519599 add 999.disable-gcloud-spyware.sh 2020-05-08 17:49:51 +00:00
Jeffrey Paul 6184ab9ed9 Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2020-05-06 21:57:44 +00:00
Jeffrey Paul 3e572538aa revert change 2020-05-06 21:54:22 +00:00
Jeffrey Paul cdee7c1bbd Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2020-05-06 21:00:05 +00:00
Jeffrey Paul 9d4d3eddc9 remove some packages 2020-05-06 20:49:26 +00:00
Jeffrey Paul cab46cb713 remove some packages 2020-05-06 20:47:19 +00:00
Jeffrey Paul b5f6af389a add rename and cksfv 2020-03-22 18:15:43 +00:00
Jeffrey Paul c12f7f51cf Update 'custompkg/root/etc/skel/Library/user-setup/100.install-caskroom-apps.sh' 2020-02-25 12:48:33 +00:00
Jeffrey Paul 82d0208136 Update 'README.md' 2020-02-19 23:24:56 +00:00
Jeffrey Paul 0dd7b1a516 Update 'install.sh' 2020-02-19 23:24:40 +00:00
Jeffrey Paul e74145c18c
add evernote to caskroom apps 2019-11-30 02:11:06 -08:00
Jeffrey Paul 4b6f5281cb
Update 000.install-homebrew.sh 2019-11-28 09:28:55 -08:00
Jeffrey Paul b7f49d9c0f
Update 100.install-homebrew-apps.sh 2019-11-28 09:27:58 -08:00
Jeffrey Paul 0094c63145
add comment about homebrew spyware 2019-11-28 09:27:18 -08:00
Jeffrey Paul 06bb74ebd9
add istat-menus 2019-11-28 09:26:52 -08:00
Jeffrey Paul 092364df23
revert addition of `borg`, wrong program - stupid homebrew 2019-11-27 09:35:42 -08:00
Jeffrey Paul d36541baad
Update 100.install-homebrew-apps.sh 2019-11-27 09:33:26 -08:00
Jeffrey Paul 4ad2ee9e71 clean caches first 2019-11-26 20:45:16 -08:00
Jeffrey Paul 844e233c90 Merge branch 'master' of github.com:sneak/osximage 2019-11-26 20:38:29 -08:00
Jeffrey Paul 61f72b9944 Merge branch 'master' of github.com:sneak/osximage 2019-11-26 20:38:13 -08:00
Jeffrey Paul 9e656b775f Merge branch 'master' of github.com:sneak/osximage 2019-11-26 20:29:28 -08:00
Jeffrey Paul 66c51bdb3e updates for catalina 2019-11-26 20:28:59 -08:00
Jeffrey Paul 1fb64cffc2 change mode on agent file 2019-11-26 19:56:02 -08:00
Jeffrey Paul df79a49e87
Update 100.install-caskroom-apps.sh 2019-11-18 07:31:00 -08:00
Jeffrey Paul 6e0149adc5
Update 100.install-caskroom-apps.sh 2019-11-18 07:19:06 -08:00
Jeffrey Paul 6ca8acfdd2
Update 100.install-caskroom-apps.sh 2019-11-18 05:14:17 -08:00
Jeffrey Paul e4be87da13
Update and rename 100.homebrew-no-spyware.sh to 100.disable-spyware.sh 2019-11-18 04:38:59 -08:00
Jeffrey Paul b331f675a7
Update 000.install-homebrew.sh 2019-11-18 04:38:00 -08:00
Jeffrey Paul b59eda1058
Update 100.install-homebrew-apps.sh 2019-11-18 04:37:05 -08:00
Jeffrey Paul dfbb150332
Rename 200.install-npm-packages.sh to 200.install-yarn-packages.sh 2019-11-18 04:36:45 -08:00
Jeffrey Paul b11899c17a
Update 200.install-npm-packages.sh 2019-11-18 04:36:29 -08:00
Jeffrey Paul d287946335
Delete 900.link-googledrive.sh 2019-11-18 04:35:44 -08:00
Jeffrey Paul 4e603fb312
Update 100.install-homebrew-apps.sh 2019-11-18 04:35:21 -08:00
Jeffrey Paul c3315b88b9
Update 100.install-caskroom-apps.sh 2019-11-18 04:30:08 -08:00
Jeffrey Paul bf698eb2b9
Update 100.install-caskroom-apps.sh 2019-11-18 04:29:02 -08:00
Jeffrey Paul 2d1b600b8d
Update 100.install-caskroom-apps.sh 2019-11-18 04:28:15 -08:00
Jeffrey Paul 66dee78df1
wrap python path adder in if statement to prevent error 2019-11-18 04:22:36 -08:00
Jeffrey Paul 77018df61d
Update 100.install-caskroom-apps.sh 2019-11-18 04:19:44 -08:00
Jeffrey Paul 94fac4b6ec
Update 100.install-caskroom-apps.sh 2019-11-18 04:18:05 -08:00
Jeffrey Paul ad660d4518
Update 100.install-caskroom-apps.sh 2019-11-18 04:17:42 -08:00
Jeffrey Paul bb0e350297
Create 000.disable-catalina-nag.sh 2019-11-18 04:13:22 -08:00
Jeffrey Paul 17949f32a7 update pmset command for destroying fv key 2019-10-31 06:13:02 -07:00
Jeffrey Paul 058311bc83 add wasabi wallet 2019-09-18 15:40:48 -07:00
Jeffrey Paul 2308c0ebcb add openscad to cask apps 2019-04-04 13:03:57 -07:00
Jeffrey Paul 8cb94dfacd add p7zip to homebrew packages 2019-04-03 08:19:42 -07:00
Jeffrey Paul 984d7158d6 add bwm-ng 2019-03-28 19:48:26 -07:00
Jeffrey Paul 17e00b978c add trash to homebrew, alias rm=trash in interactive shells 2019-03-27 21:33:47 -07:00
Jeffrey Paul 5d722e5f75 add httrack, handbrake, ableton-live-suite 2019-03-21 17:36:28 -07:00
Jeffrey Paul 2d81b3798c
add vcv-rack to caskroom apps 2019-03-10 08:05:54 -07:00
Jeffrey Paul 22c0a7e208 updates 2018-11-05 06:05:52 -08:00
Jeffrey Paul 72dd27c3e4
update git-prompt theme, disable remote fetching 2018-10-25 06:28:39 -07:00
Jeffrey Paul e6705c0da7
add neovim, add powerline fonts, cleanup package list formatting 2018-10-25 05:11:40 -07:00
Jeffrey Paul 97e2c31a47
fix slow bash startup from overuse of brew --prefix 2018-10-25 05:09:48 -07:00
Jeffrey Paul dfd824a443
add homebrew paths in front of system paths 2018-10-25 04:37:39 -07:00
Jeffrey Paul a709912a1b
add par2 2018-09-27 12:37:45 -07:00
Jeffrey Paul cf5b279efe
remove ghc from packages 2018-09-25 16:47:26 -07:00
Jeffrey Paul 786c598a6c
add syncthing-app to caskroom apps 2018-09-19 15:20:58 -07:00
Jeffrey Paul 69b1d41e81
Add files via upload 2018-09-19 10:20:49 -07:00
Jeffrey Paul ddb96e5091 sort pkgs 2018-09-14 03:06:34 -07:00
Jeffrey Paul 124f456302
add asciinema 2018-09-14 03:03:54 -07:00
Jeffrey Paul e973689f4b
Update 100.install-caskroom-apps.sh 2018-09-11 06:19:54 -07:00
Jeffrey Paul 74bd49c9aa
Update 100.install-caskroom-apps.sh 2018-09-11 06:10:54 -07:00
Jeffrey Paul 6329af09b3
add some yarn installed packages, add now 2018-09-11 02:09:53 -07:00
Jeffrey Paul 69062c4d6a
add rust 2018-09-11 02:05:14 -07:00
Jeffrey Paul 1b027c125e
Update 100.install-python-packages.sh 2018-09-11 02:04:39 -07:00
Jeffrey Paul 5a37aebdf4
Update 100.install-homebrew-apps.sh 2018-09-11 02:02:39 -07:00
Jeffrey Paul c6f0d40867
Update 100.install-homebrew-apps.sh 2018-09-11 02:01:12 -07:00
Jeffrey Paul df9e1a4430
Create 200.google-cloud-sdk.sh 2018-09-11 02:00:27 -07:00
Jeffrey Paul 32f0f414db
add google-cloud-sdk 2018-09-11 01:59:07 -07:00
29 changed files with 263 additions and 262 deletions

161
README.md Executable file → Normal file
View File

@ -1,151 +1,28 @@
# osximage
# osx
This is a repo for building an NBI (never-booted image) of an OS X (pron: oh ess **ten**) root partition, which can be easily and quickly (<10m) imaged onto a Mac with the `asr` utility readily available on OSX boot media.
New deal for Catalina/Big Sur: Imaging is dead. Install a fresh install
manually, then do the following.
# HOWTO: Creating the NBI
# Manual Prerequisite Steps
## Prerequisites
Open System Preferences.
Per AutoDMG, you have to be on the same OS as you're building. To build a 10.12 image, the build system must be running Sierra.
* Sharing > Set Hostname
* Security and Privacy > FileVault > Enable
* Install the following to /Applications:
* `Xcode.app`
* pkg offline non-app-store version available [here](https://developer.apple.com/download/more/)] (requires appleId but does not developer membership)
* `Install macOS Sierra.app`
* [free download via App Store](https://itunes.apple.com/us/app/macos-sierra/id1127487414)
* `AutoDMG.app`
* [GitHub Download](https://github.com/MagerValp/AutoDMG/releases)
Open a terminal and run the following:
* create `~/Documents/packages.10.12`
* put in all those apple printer driver `pkg`s you can download
* the "enhanced dictation" offline speech recognition 800mb `pkg` that system preferences will download if you ask it
* run [this](https://gist.github.com/sneak/958df7165ce5b9e4dd4c89da5764a8e1) while it's downloading to find the temp file, then hardlink it to `whatever.pkg`
* any other packages you want preinstalled on the root but not:
* Virtualbox (won't work unless installed from inside the running OS for some reason)
## My `packages.10.12`
* `chsh -s /bin/bash` and enter password
* `sudo xcodebuild -license accept` and click ok/install on developer tools
installer popup window
* `sudo xcode-select --install`
# The Install
https://ipfs.io/ipfs/QmTvcpFitKXsNTLdVRWk6PHvFWUfddZH47umm1xZvJApts/packages.10.12
```
48516a7b6e5286cc44ab30ff3c5aa171e0888519 200.BrotherPrinterDrivers.pkg
ebf0abac1483fd6de9262e92b047dcc80ceabeab 200.CanonPrinterDrivers.pkg
b8442185bfa0e182b84a7f6f5f298deb04d81a74 200.EPSONPrinterDrivers.pkg
2cd5d3bfc434226125d068bb09e90cbb2157a7ba 200.FujiXeroxPrinterDrivers.pkg
f44f5769579f3be7a771f54690de221e04f496cf 200.HewlettPackardPrinterDrivers.pkg
9c303c08e76aaef2fc9d1599aeea9ff15e8bce2b 200.InfoPrintPrinterDrivers.pkg
c45d3616f5995846313b9afc159ca6793b00ed08 200.LanierPrinterDrivers.pkg
9bcdb8492b00b0d7079dde23e1db4ac8da4fe0c0 200.LexmarkPrinterDrivers.pkg
c6218afb33b68fe6fab803d5b327e4f628857039 200.RicohPrinterDrivers.pkg
1ef9a998e680df23ca0cf8ba1426ed7673a2c37a 200.SamsungPrinterDrivers.pkg
df267df6198781d3fae736112a66a4a150c46b67 200.SavinPrinterDrivers.pkg
59b0306fe33693a73dc709641262f0ed2d63285a 200.XeroxPrinterDrivers.pkg
b77920f32f36f3229611ea0e10c01f2dad157ceb 20161003.EnhancedDictation.pkg
```bash
bash <(curl -s https://git.eeqj.de/sneak/osx/raw/branch/master/install.sh)
```
## Build Image
Finally, just run `make` in the cloned repo to build the NBI. You will need to enter your sudo password up front, **but don't go get coffee yet**... AutoDMG will ask for it again about 30-60 seconds later. *Then* go and kill an hour.
The OSX Installer .app, AutoDMG, and Xcode (for `make`) will all be included in the built image, so if you're *using* the image so built it will have everything you need to make further images later.
If you aren't installing any extra packages, edit the `Makefile` to remove the `~/packages.10.12/*.pkg` part.
It writes the image as it's building to /tmp (to leverage fast internal SSD in case your `osximage` clone is on removable media) then moves it to the repo directory in the last step.
# HOWTO: Imaging A Mac
## Before You Begin
Get all data to be saved *off* of target system. Recommended: install Google Drive and log in to your Google account and put everything to be saved in there. Wait for sync (upload) to complete.
## Create bootable USB media
* Install OS installer .app bundle to /Applications
* Insert USB3 media. 64GB or larger to store OS installer and image.
e.g. USB disk named "Untitled":
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia \
--volume /Volumes/Untitled \
--applicationpath "/Applications/Install macOS High Sierra.app"
## Copy image to USB
Copy the never-booted disk image (nbi) ending with `.dmg` to the root of the newly-imaged bootable USB disk, alongside the installer `.app` the `createinstallmedia` tool placed on the disk.
## Image Mac
* Insert the bootable USB drive into the machine to be imaged and boot holding the Option key on a wired keyboard. (Alt on a PC keyboard.)
* Select `Terminal` from the `Utilities` menu.
* Run the following commands:
### Repartition and Reformat disk0
⚠️⚠️ **This will delete all data on the internal disk. Proceed with caution.** ⚠️⚠️
`diskutil partitionDisk /dev/disk0 1 GPT jhfs+ root R`
### Write OS NBI to disk0
`asr restore --source file:///Volumes/Image\ Volume/nbi.dmg --target /Volumes/root --erase`
# HOWTO: Using the Custom Image
## 1/5 Initial Password
* The password for the `admin` user is `admin`. Log in as admin.
## 2/5 Create User Accounts
The example user in this document is John P Smith, username `jps`. Replace the name and username with your own.
* Create an administrator user account for yourself.
* Username: `jpsadmin`
* Real Name: `John Smith (admin)`
* Create a second non-administrator local user account for daily job tasks.
* Username: `jps`
* Real Name: `John Smith`
* Create a third non-administrator local user account `personal` for personal use.
## 3/5 Set Up Systemwide Configuration
* Log out of `admin` and into `jpsadmin`.
* Delete the `admin` user in `System Preferences > Users & Groups`. Choose to delete the user's home folder.
* Open `System Preferences > Sharing` and set the machine hostname.
* Connect machine to network (potentially entering wifi password).
* Open a terminal and run `new-system-setup`. Enter the `jpsadmin` password when initially prompted.
* When prompted to "Enter the user name:", enter your normal username (e.g. `jps`)
* This is for FileVault (FDE) to enable the specified user from the encrypted disk.
* Wait for the script to finish, then enter `sudo reboot`.
## 4/5 Set Up User-specific Configuration
* Log in with your normal user. (e.g. `jps`)
* You may log in to your personal iCloud account/Apple ID, however, **make sure you disable iCloud Drive as soon as you log in**.
* Uncheck `Store files from Documents and Desktop in iCloud Drive` when prompted!
* Disable iCloud Drive and Mail in `System Preferences > iCloud` if you logged in to iCloud.
* Open a terminal, and run `new-user-setup`.
* This will take a while, as it will be downloading and installing a full set of apps.
* Log out, and log back in again with the same user so that changed preferences will take effect.
* Log in to Google Drive (already installed under ~/Applications) with your Google Apps account.
* Avoid installing any additional software to the machine unless strictly necessary. Prefer web applications and built-in apps.
* Do not install third-party software to `/Applications` except via the App Store.
## 5/5 Finally, Systemwide Security Software
* Little Snitch
* Little Flocker
## 6/5 Optional Manual Configs
* Enable pretty native OS notifications for Chrome: `chrome://flags/#enable-native-notifications`
* Re-enable Location Services
# Credits
* `DefaultDesktop.jpg`
* rotated version of [space](http://simpledesktops.com/browse/desktops/2012/feb/19/space-2/) by [Nané](http://www.smplz.com/)
* other desktops
* a whole bunch of 5120px wide (5K Retina iMac res) images from [InterfaceLIFT](https://interfacelift.com/wallpaper/downloads/date/wide_16:9/5120x2880/)
# Uninstall (not 100%, only for dev)
```bash
rm -rfv ~/.profile ~/.bashrc ~/Library/Homebrew ~/Library/bashrc.d ~/Library/profile.d ~/Library/user-setup $TMPDIR/osx
```

View File

@ -0,0 +1 @@
export BASH_SILENCE_DEPRECATION_WARNING=1

View File

@ -0,0 +1,3 @@
if [ -e $HOME/.nix-profile/etc/profile.d/nix.sh ]; then
. $HOME/.nix-profile/etc/profile.d/nix.sh;
fi

View File

@ -0,0 +1,4 @@
if [[ -d $HOME/Library/Homebrew ]]; then
export PATH="$PATH:$HOME/Library/Homebrew/bin"
fi

View File

@ -1 +0,0 @@
export HOMEBREW_CASK_OPTS="--appdir=$HOME/Applications"

View File

@ -0,0 +1,10 @@
export DO_NOT_TRACK=1
# the rest
export HOMEBREW_NO_ANALYTICS=1
export GATSBY_TELEMETRY_DISABLED=1
export STNOUPGRADE=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export SAM_CLI_TELEMETRY=0
export AZURE_CORE_COLLECT_TELEMETRY=0

View File

@ -1 +0,0 @@
export HOMEBREW_NO_ANALYTICS=1

View File

@ -1,2 +0,0 @@
export PATH+=":$HOME/Library/Homebrew/bin"
export PATH+=":$HOME/Library/Homebrew/sbin"

View File

@ -1 +0,0 @@
export LDFLAGS="$LDFLAGS -I$(brew --prefix)/opt/openssl/include -L$(brew --prefix)/opt/openssl/lib"

View File

@ -1,5 +1,8 @@
if [ -f "$(brew --prefix bash-git-prompt)/share/gitprompt.sh" ]; then
GIT_PROMPT_THEME=Default
BGPPREFIX="$HOME/Library/Homebrew/opt/bash-git-prompt"
if [ -f "$BGPPREFIX/share/gitprompt.sh" ]; then
GIT_PROMPT_THEME=Plague_Doctor
GIT_PROMPT_ONLY_IN_REPO=1
source "$(brew --prefix bash-git-prompt)/share/gitprompt.sh"
GIT_PROMPT_FETCH_REMOTE_STATUS=0
source "$BGPPREFIX/share/gitprompt.sh"
fi

View File

@ -0,0 +1 @@
alias ls="ls -G"

View File

@ -13,7 +13,7 @@ if [[ ! -e $HOME/.gpg-agent-info ]]; then
gpg-agent \
--enable-ssh-support \
--daemon \
--pinentry-program $(brew --prefix)/bin/pinentry-mac \
--pinentry-program $HOME/.nix-profile/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac \
2> /dev/null > $HOME/.gpg-agent-info
fi
fi

View File

@ -1,3 +1,5 @@
if [ -f $(brew --prefix)/etc/bash_completion ]; then
source $(brew --prefix)/etc/bash_completion
fi
if which brew 2>&1 >/dev/null ; then
if [ -f $(brew --prefix)/etc/bash_completion ]; then
source $(brew --prefix)/etc/bash_completion
fi
fi

View File

@ -0,0 +1,5 @@
#!/bin/sh
xcode-select --license accept
xcode-select --install
xcode-select --license accept

View File

@ -1,8 +1,15 @@
#!/bin/bash
############################################# install homebrew under homedir
# reminder: homebrew is *spyware*. using it in the default configuration is
# *unsafe*. other scripts elsewhere set HOMEBREW_NO_ANALYTICS to disable
# its spying; do not use this file in isolation.
if [[ ! -d ~/Library/Homebrew ]]; then
mkdir -p ~/Library/Homebrew
cd ~/Library/Homebrew
curl -fsSL https://github.com/Homebrew/brew/tarball/master | \
tar --strip-components 1 -xvf -
fi
~/Library/Homebrew/bin/brew analytics off

View File

@ -1,4 +1,6 @@
# adds homebrew python packages dir to python paths
if [[ -d "$HOME/Library/Python/2.7/lib/python/site-packages/" ]]; then
echo "import site; site.addsitedir(\"$HOME/Library/Homebrew/lib/python2.7/site-packages\")" >> \
$HOME/Library/Python/2.7/lib/python/site-packages/homebrew.pth
fi

View File

@ -0,0 +1,4 @@
#!/bin/bash
# a small vote for the status quo, or perhaps just a vote against the cost of change vs the zero benefit
git config --global init.defaultBranch master

View File

@ -1,8 +1,12 @@
#!/bin/bash
# set up paths and whatnot
# set up paths and whatnot and ensure homebrew's spyware is disabled
source $HOME/.profile
export HOMEBREW_NO_ANALYTICS=1
# this shouldn't be needed but it is
export PATH="$PATH:$HOME/Library/Homebrew/bin"
# per default settings apps are installed in homedir
if [[ ! -d ~/Applications ]]; then
@ -10,27 +14,53 @@ if [[ ! -d ~/Applications ]]; then
fi
# install caskroom
brew tap caskroom/cask
brew tap homebrew/cask
# the following is required for fetching some of the fonts
brew install --build-from-source svn
# no google-drive-file-stream because it requires admin privs and installs to /Applications systemwide
CASKS="
atom
deluge
disk-inventory-x
google-chrome
iterm2
keepassx
keybase
lastpass
little-snitch
sketch
slack
spotify
sublime-text
torbrowser
vlc
xscreensaver
alacritty
atom
bitwarden
deluge
disk-inventory-x
eloston-chromium
homebrew/cask/handbrake
iterm2
signal
homebrew/cask/syncthing
tor-browser
vlc
wasabi-wallet
xscreensaver
"
for CASK in $CASKS ; do
brew cask install $CASK
brew install --appdir="$HOME/Applications" $CASK
done
brew tap homebrew/cask-fonts
FONTS="
font-consolas-for-powerline
font-dejavu-sans-mono-for-powerline
font-droid-sans-mono-for-powerline
font-fira-mono-for-powerline
font-inconsolata-dz-for-powerline
font-inconsolata-for-powerline
font-inconsolata-g-for-powerline
font-liberation-mono-for-powerline
font-menlo-for-powerline
font-meslo-for-powerline
font-monofur-for-powerline
font-noto-mono-for-powerline
font-roboto-mono-for-powerline
font-source-code-pro-for-powerline
font-ubuntu-mono-derivative-powerline
"
for FONT in $FONTS ; do
brew install $FONT
done

View File

@ -1,72 +1,86 @@
#!/bin/bash
# set up paths and whatnot
source $HOME/.profile
# reminder: homebrew is *spyware*. if you don't do this, it won't
# set HOMEBREW_NO_ANALYTICS and it will silently spy on you when you use it.
# this should happen in the .profile but let's do it again here to be certain:
source $HOME/.bashrc
export HOMEBREW_NO_ANALYTICS=1
# this shouldn't be needed but it is
export PATH="$PATH:$HOME/Library/Homebrew/bin"
# Homebrew's package database is on GitHub. The hashes to verify the
# authenticity of the source archive downloads are in the package database.
# Microsoft, a large US military contractor with long ties to illegal NSA spying
# programs, bought GitHub and can exercise control over them.
# What this means is that a large US military contractor has control over the
# precise software that gets installed on your computer when you
# type "brew install x". Cool, huh?
HOMEBREW_PKGS="
autoconf
automake
bash-completion
bash-git-prompt
bonnie++
byobu
cmake
coreutils
curl
daemontools
docker
docker-compose
docker-machine
duplicity
ffmpeg
fish
flac
geoip
ghc
gist
git
gnupg
gnupg2
go
gpg-agent
graphviz
httpie
homebrew/dupes/rsync
irssi
jq
lame
mobile-shell
mtr
mutt
nmap
node
pbzip2
pgpdump
pinentry-mac
protobuf
pv
pwgen
python3
socat
sox
speedtest_cli
syncthing
tcptraceroute
terraform
tor
torsocks
unrar
unzip
vimpager
watch
wget
whatmask
corelocationcli
heroku
asciinema
autoconf
automake
bonnie++
bwm-ng
byobu
cksfv
cmake
coreutils
curl
daemontools
docker
docker-compose
docker-machine
duplicity
ffmpeg
fish
flac
geoip
gist
git
gnupg
gnupg2
go
homebrew/dupes/rsync
httpie
httrack
irssi
jq
kubernetes-cli
lame
mosh
mtr
mutt
neovim
nmap
offlineimap
postgres
p7zip
par2
pbzip2
pgpdump
pinentry-mac
protobuf
pv
pwgen
python3
rename
socat
sox
speedtest_cli
tcptraceroute
tor
torsocks
trash
unrar
unzip
vimpager
watch
wget
whatmask
"
for PKG in $HOMEBREW_PKGS ; do
brew install $PKG
brew install --build-from-source $PKG
done

View File

@ -1,9 +1,16 @@
PYTHON_PKGS="
awscli
awsebcli
pipenv
powerline-shell
virtualenv
"
# first, upgrade pip:
/usr/bin/pip3 install --upgrade --user pip
for PKG in $PYTHON_PKGS ; do
/usr/local/bin/pip install --user $PKG
/usr/bin/pip3 install --user $PKG
done

View File

@ -1,15 +0,0 @@
#!/bin/bash
# set up paths and whatnot
source $HOME/.profile
NPM_PKGS="
coffee-script
yarn
"
for PKG in $NPM_PKGS ; do
# -g is okay because "global" prefix is where homebrew
# installed npm, i.e. in ~/Library/Homebrew, not actually systemwide
npm install -g $PKG
done

View File

@ -0,0 +1,13 @@
#!/bin/bash
# set up paths and whatnot
source $HOME/.profile
YARN_PKGS="
now
prettier
"
for PKG in $YARN_PKGS ; do
yarn global add $PKG
done

View File

@ -1,5 +0,0 @@
#!/bin/bash
# setup google drive as synceddir in ~/.paths
if [[ ! -e ~/.paths/synceddir ]]; then
ln -s ~/Google\ Drive\ File\ Stream/My\ Drive ~/.paths/synceddir
fi

View File

@ -0,0 +1,5 @@
#!/bin/bash
if command -v gcloud >/dev/null 2>&1 >/dev/null ; then
gcloud config set disable_usage_reporting true >/dev/null 2>&1
fi

View File

@ -6,10 +6,8 @@ sudo xcodebuild -license accept
# enable fde
sudo fdesetup enable
# disable hibernate
# SIP prevents this rm, sadly
#sudo rm -f /private/var/vm/sleepimage
sudo pmset -a hibernatemode 0
# destroy fv key on all standby events:
sudo pmset -a destroyfvkeyonstandby 1
# enable application firewall
sudo defaults write /Library/Preferences/com.apple.alf globalstate -int 1

40
install.sh Normal file
View File

@ -0,0 +1,40 @@
#!/bin/bash
function run_install {
mkdir -p $HOME/Library/Caches/Homebrew
rm -rf $HOME/Library/Caches/Homebrew/*
REPO="https://git.eeqj.de/sneak/osx.git"
DEST="$TMPDIR/osx"
if [[ ! -d "$DEST" ]]; then
git clone "$REPO" "$DEST"
else
cd "$DEST" && git pull && cd -
fi
rsync -avP "$DEST/custompkg/root/etc/skel/" "$HOME/"
mkdir -p $HOME/Library/bashrc.d
mkdir -p $HOME/Library/profile.d
touch $HOME/Library/bashrc.d/000keep.sh
touch $HOME/Library/profile.d/000keep.sh
# FIXME move this into the modular setup scripts
mkdir -p "$HOME/Library/Desktop Pictures"
rsync -avP $TMPDIR/osx/custompkg/root/Library/Desktop?Pictures/ $HOME/Library/Desktop?Pictures/
defaults write \
~/Library/Preferences/com.apple.systempreferences DSKDesktopPrefPane \
'<dict><key>UserFolderPaths</key><array><string>/Users/user/Library/Desktop Pictures</string></array></dict>'
# run modular setup scripts
for FN in "$HOME/Library/user-setup/"*.sh ; do
echo "new-user-setup: starting $(basename "$FN")..."
# we used to run these in a subshell but not we don't because we want the environment to persist between
source "$FN"
rm "$FN"
echo "new-user-setup: removed $(basename $FN)..."
done
}
run_install